3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646412600243796845437773390264725128194163200768487362517640659675406936217588793078559164787772747392720029103429495624476613082007292507345291707642266210476730378631699542374551174565220227833240968035246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177882310276598251093588923591620551087632980879931651725289380012378174348968321515905624933473702068322321001186373957705674738671021732123752243252416263580343762536068086691635715945515278178039217743228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822018147347990223590671381469051160519223012694823161134174399447148330408624842691395023367134124251238640266572581309439676219396554073865242298978797821986379182997095579247473203032391164104459069079778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355800549448948848713516053755934023457489795166024423383214060300959371055884570525157042662846003544028236787685509826781617655203757956554816778960389274983556087915411777494235734007641610932940038999821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700815488952265167228340452772191069914157646394852311267947308658031950764551976756289574288817968120900263871452578583152776151090886317402436956805678730152354278047934142664952238337071175112653755039423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161974055434365486980054448792959702875903522584097826835986664465860456942413907290952662499329029734405681606838057266260572770884070734714960600645614540707344327825140874742755067223048453570060922143900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451129159136811073940551752080196305393507402485095537725003670546651623304304250874423242624046321150789973369299854070416562610419767002024150948924118560924096376044296120023645907064497706272079190192359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817122049303218537406272474215197403057690436026863607807920047762324295518294735220272443763390277213920877670657162416397517858592544269234285352743288563368507896519620725194165560618703705502184628454342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218817636796449436171304160372430506584851317492640558551940180051809084752118682246169761492432383194864344159085580110730703112015022434160731579295287529368358203970033891121141706852193665897894595031543895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318686599680385838123703291562075788359487809416882055316051281901526475928075749581545642213414593781670569928682998956119823538371578804804787045841753946654976901732203108900703033629117673084484503721456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727975730382459894668096808222213484858738229992817940908256652095816554724752445667436975944746863763324289042697761067919339109833004223102937282987989032093910926828363061736101738781236798986451493117024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644376506378618613243486357974112585208634599278036887924983543632984576876501650651153450086957212395075447856831736315571535270465242352597375134088254616096614407466755142268360319598010721524635510691718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014354500174327307936251130702982504994179942844511464793291545995559095878076216366685917910654359660652535253202736507259891212556868428020772464877220109966318295595529033933122843648644759735608598407609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445620009414656034992808794051153100575871295525719641115068503407737106043803712595755969859493620584775120263549473475347481892622541903526716144292848998575367406921652716300860606543737368235565886264863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279218690442843426307357607039996694307895081472697302538173756949227517953543261569120405948328609499923664122878812264191485048563280720664185570595203750303229168944894275783060909108524106014006832742055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160170196981665424263787636014530359465384503254766749997373408356651381860251565202836373891710165454148826744480091057041861626268379711208861413572796110990882929702296921281809787989513915042709367864449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827499843759421130204182973084171788130903795585456032471708191953027714657945554755447542844344081393889086097760178573893075186619065050180771650018407443258540241843605011182429907023234172436745253653495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588249742262418853525266367028276624993498294887483310617642084290169230528996089786041300651090281798050405871076711790411302174827966823530019602202531855767898433175868063783599687916015389222202365757655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213602352182367412147331244999443341559152743159316874778825331550927703362029012225977948098553922000645271622808553982789065842334475528212765176505726632676911410750348458718969964348757751384791481836351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830021613682766970262234594187374767335379988844034270468030425516941271587393203984443746045478161130566251764127598211819396611018505628805559425660600323121161809946221293010024709133471506822684304586803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434620185873282529247965052866814085035385198375236374519256227954902905579070302839501048548359298345428144873043580470533150815105030015214281171753936491331661726212354055278633080020831770556302949635942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576953077981413657001747613569669861460684914396995738376316958246025133421080726217136019430180872098885514150241638183259752595931655318658331171268579415272066122184226614118251546574848783126103478345467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963302813916472089635817717355558485927065245048625164195405508013435103233898133783024977018227549063814999647233340796130414697394763726508692733471084156856084309213162404346298639208416600559045985064912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740341135971991331359465536854466923676525890121084137774324821918127478478922872648929700323718734561579815998348391004126010507469645994303319788106349139238124905030614334079183280040639070986725961970983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832613950143295094748515947246675272016843165866088075127685847555411843811690116220055521134844889606682592274313190079630115870846701176549353930465633562253112447277966690058311906161019726630739705425314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414746083399186968892711569423454926512466455077925540281050376220359675305586018564920560628790907694533392088088494778288948511221547432301913832455629938810206144902668760102077532109156849778307408596498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897939181583945627081733015821602255196598987693761640198612074667550488611108557267645070526224461302223358520722736204850572892388158849387545352291863997143808840617572862209501225065158631042588841343554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815832270977451809293421931898158124828326589500407048552060998937839003419141630446391638805496587865013750463416956551566182988786307058423069676602540530248114710078997842118304890104640568965397028855955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851973700932801945303205726284526580460463378166314299330766466465307605905489628887241897160602258826175775399220551315093772006248630855628204935757527249955670892216342339836025653287310291940070411769192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077105815742407214963395603652702833344073057500736745622605846498861151016896121811190584717144610687197610174565873737967406971374232387538390303172002002072059284887851239117464716737437379232838819662016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699381930691487447171866461831119426031616640703773164870018647996002430440032422418094022785333090115098808706782688353172007675225531380088187804316901900728048317992874141254761230896068330958283776676882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598534812856846193776698942774591709188025200127499055594072896965947933316722436215678967769667080352290390184857308062756708676586271047694092035655930253527434189659270022270492331868299915609364137570049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743052827641756700502880404894298995809481035348339341449278859252621924155472319971433850866373209266327282435149336407045896838523456247443611752567669877675972234392063575074715529181027626140129924804228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594688382984528829229662751371624221729546786707158409241840841475575825393852409633020513497047406953995678979817278609204622868397357798151118681526598846069497589654813146511503926263777495137615572481951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163617414324970791096581627464297170728717251427458983568970955346268201690853561089448984071005819203021769451207717745887955195104733841847399807963067678858451675757299043069715426423834980098708699336709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287200172155886663457349714095337211516559857579417244198890261670161016115578343150254603287811984240274846085107224066767787608552476177738330895026100643883505502054563243461678594519417956698749685152448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097591677991584260491971209543227026784326542965724032720887143219996453132025871096771651285496699625526986073117637182074988273997706019913620930832307368382064557325637659829125781314922242204279712414416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132917179929792407833907157579814268168646553829468473992058886316559349198678969628404473449680240770928313764081033522552427174041076735654244410044833474401017264410529547872963458986405012036080244511903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509596740456168404517717479527903532549325891204833857465900967817304160005210889346107687540042419778030828851812001733695591271377141950113613044097532791905048915832463991434835316486815485791786329351239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712744358156320881066501495681435587965769098577659027687074536592763649755534496173080781609871032480137951361703677634575949756862080139963745517624251477806287222659714554829067692957136435721526744689878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492699871692343318900221415031139987652606887615667402101972017196023908610829749276395695411530322754601738707956259935797853024434767163995914623179312399899869284379757024923695515872976838540052276514956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634325232815789113554504533719052750682291561850033284695679262262081904424733403625038927920715859600393631533688427243753667996986479347411331983286194414606539227840999031438403545650470567895520248271760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997704518328535864804285568222087372136164905863032563689130841037602156799270200053223554398046531193397754590440450785680213984650096934295473102692499475864660580916699841606846460872939438082743082858174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612186230019866079877826842459338356389195702068535216032116352300649887446002001704130569853651546687520238593751832803728511432748116996836928492204473805706334966187112409478359158696268586435891413598542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324899630770113713446751569302448854820771241335577323069494580672678452359436315078727281579015730700331787968544362795257190236232746142628687327380094977411228562376632149046532940720261975390717404222595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545378088270634572959621690853835353703814181155738163782090325615198697453576464121254980760051561417072980469948135934831505681166427932193352798227147157673401860887215187996693502527007575560997198828630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021090073207273697493446304997314425715604331336903876181009488731207134827108158898574832658542075100779531183268617080370709359276149367825308583404823510036321663789574262025503501168615434073795045164828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294719745946908210256347889954317715243796962112812245034260663992688521330791963702777804488579205730469908009234401866381132520971230964760599899479257598510081730396068222199753273016065826285275825766950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328794474109697038798547369840254580632948350223593935435874802239897609162962501104739311694491006669072306346931301697118206325352692440438400937242844282097093648569094689200873717532525570305435398287278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986996547863685341028488573702547255023656634186809190383886707879072084036194021646701215348379781518328264725786288152071010814995589803381189615694417567613407170465385121709021237778843336496518721199054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840838506873416250716572741851349520849636709555424504394839480459791562282824837879341527203622633695618055563710768148888936192757426599358235594315308879330527675587475123650658439694756042971920023198680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749116546854997164539416112164176107171454017651905650525206622778831290457196932059902413753959838619826032054958395016755525096441371182225614960140030230354078992096986775078672000380742679705303071679322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990990212249224123151689927678558637363155260025034884878132330019101893996167027314169996265119457426367619650024347371727290284622097983948710659822700099549188776961885054326532118022194442822284251525561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015157143115795490933903261411918654752376247215311020793691158487422058227473432017355850771224379698579654915806279502740977168861148076163151618553068566924571717692204436684331273989337941116297224516999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519376539734984802454976076024403080844890106838786972612370978357824516680117148598367940552904619826216566917202742628548239339600182545994092543081696910329784112340228856001905493427502231852947128296096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423187145518241528676305675131162677177350617511245463387994265291270105789956718057214365579183506917779307040757329043974949958224106238105149176502385041827300966201717509405908054089572837554063551522199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337883360976012114848700556016581249247068256844272045472896309420306650445298646223594226008554991589149953606498428034579492757009497959450602378775019470624632394954957823082283066840818802521076639074230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539347888587094600582723230519108117514234912687336585960799891732928915896001815091816337400806035475200051511751029012299248709615459280262060761698272181029167315548929423740851967433079166078499055782101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878237438944115685176271711636309401479909649456354592950130739003626821007326370082356150691269643183351716254390304698989314261544263595113634660573786549512445747526216789547036289048304849968040377225134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680431608451284591604244132698791253856029915996727876619519505317648831346932573668946443825581391084862096637426745798313012223438725831244220330945714575414704792938758582389977385152135237238955966431223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081521782826112293131182086600709968603654098183268075582477670695041099758614362435521619453530292002546673679964850433731334952082107511992589266389956475698587079018561237915788643744690378715095001125502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352776325598980869487211138459800141238421638278244127365424467488333816797162011288619141540193671290947899026466644315609837296150196862422825067230616672094354657142514930864248877859868275958874906507726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384631941511620257790786307180123115945860389656252655422334623445450739478869026815949751311688514369452102168831904461686297633252298638518188500492869357276476682385556463655449640063176482855757858666102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132615853187176388598937792918890299879387981000369730784895927062541048485931585432339568310423902990702634437978756918554340897644076013084448197862650794764408301349424358342818859152592934714363175337495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307076608498252990003178503058536821395127350386382460564251033777558098646433980171862081426630741725922260005110913426810746701290143016541010649332122837908275150010035300156545975083237729654396973820477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998100953534135489087548363275795224072069862910246717035792514417667038866099069857262605812408253362252189920004189757457653151230000644457159317017716886354833330519215820559461173577163211322339319653203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517977821450547222788529872101978588460700474200284688737958442289499743336562718779917211379161644925413297156528795295326397595385359209501386333805075613695308995475848830242619627589859415137805158050257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814053714065207581072708481672639770987314551626469114232861030369329843303003236761627142640675878067318839715150027981633747790787750383079867594045910739210345874042196170349258081899072059612915864202028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328334700751619790086872854399629815756058916376247230691628711111376760864803237524596649304117539461364643378046711650555046706718362212857950480671656304276267114299991134876984470503706379001810968886297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542470553759386966246563341215410140322869909301591328858088312412428828763738727428380385907102927486333515030904453280525977956589205545624342979827941348917563824007716121733247364285401606100443376414572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195153616017221589042878567848206829194416987181928627308270444163039625471305328438833791337476873582612211625836027289616245590418967702474538275839665229937123516304898330124214174557885915942560597924277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582020424573919942530942642245042026890381501526836024125598075975236481628093048912746151196231546114008220563967806585354076686882275426503812259991620760170895567474465242344520176616503259456659129667863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347880383566875220034824576949084568626960577157019191748922606352081297387974438354832861369395624503929768057832234021716765559177668403757234844094617629312884926899368713898388222710602790379900190455833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503693529270115663051533519186418648234424999192720272953459599063048723608041595760029668121116831723660381105428035914457202482564561057140554624208213435209481084171582895724450720635468160023051201408480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254221827291491598105836897025035228130021411924860142480680797536996477719394906804683552808347327610306049409733091690316783097934636611832784531868716462680738833656704566010423768505801395074436479639222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132403397131655043918879601983821385850007732424617788491875814596426423378897933308194881600401131265256356932446593984006368903152547229239914144743770696338935761926039189247936317800831026114195485436051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819762844028610258805392339329474672024088541276492386447602161162620824212991660362299184923782236300983478119522913821847326342285759120979805478285250591837983368017874112426447460022562414980691400740979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504583283874853137369113510255062010277534580943910500102183397324565047288947687929892594501987507671223637918758647201214966061151280487096488630562284408393694438721692120849200851558381251070741955187208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631142254364839654999834790843070217643855543512574368282281530322223808347679511135570148063182004532207237948918635721491062425269939946710153668462341051533381426847706275852035240992079720869914537301095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221127374050789272663406388506867344585607732666483845780277189114758013231055198784133652185190714606813898688671031475982646112937954395266728672759948335902597445878687684964626834844344141359177145877660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687451082206035554108176664605241249662244228045452432160320360194641356097920019590240497929236732989245539901019801121402908686999205758917771880741461222050247285857153675307478143897305717872683663601576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429026294982656755335273100468788657310472466493326567927331345122955059186232937393326086077451350775309015744438294873397796053228493583013618379586264803212973684748175164769136621103603695091066665051717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455174726278180326830585488039709770479348310354398559078435527766760331398846052715031388563324676889271045958519328951391678238577357726581004798256393551935200552040800287059678249739374788605283564935914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400851746604296274309768387151945982644735940234248211044757291117779587731341553609527595708986125867714562523994500759380206093550248920084767332293085742222550206455690239126543663578524272429056053205754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996558919392205046999821062931609675651790751322960777857553310265858425760866867645355209277482755675451771699508789411805936305249944967012375980065534998739666395394417017059698101512719333118407679232718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957588376168784364346792755863573972253564884133060119289574642809357858081132331433115287482179766039712579528900364071989233281316116404169377366280132597382222374268189176489596422703380390592959649696482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061621073001019262483146821203551699501522007316384004132030333242312167082685468931758436630430784350785928104478492663952652398718644173380085681692321347429754583269402161253332837900960648627785494126679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480951836233233175229370352102914641331275203711716675487206347389232937851072902951446292741546761947942747166916030497829288961474587026499797079206387240825023006425544995904011974108535167844409018806462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126453570650830092147925834989247512745362200610585457599736931352970781437428413405519544467214894150574528391716037154530825255583432025125424166244575245629644579107697171521470951850550035505439063168825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349282934390514556706074460797047693164627812141713818274378561462197088087021064211057377851471358837377388240765280451914271374881105597447183100939375197659802100241012511230813682603384744910877161322857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320192528043461704390289260279931404361370265820121312851488158573111782104131033572888718172952627112000814750640268304641898876974787917317370381399918882424169942121527760451859567119094180737347933109970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713632957423217357446473421097414917436419947319588400526387269592318364232549184559550453437784670947045095942012021142208641912790493599452137392487110743231495113804293793655436372172634819075711353127093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032934134728905013167728097131626834959634092922430311950848788671035335200237127302029165929752526570392104214963495238570856057234346215769569851340683045483315459075364711469968242091023214311717692277385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877921513113104500836636310075175110259002808642771502096271366239740107528844546833161821150278926430729763557610551124620332480053105995111505431484829553432959830574272451737886527193000732321736237587327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633620779550452193215633612468530317470544394029418292635524015545231609868255313897018801539704596250169179664812501555932311482673005633835797260328601778474149600456972578349562058732873012451455576345230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290482516701766198207306183312392193535690040705215498939034465938809047507724169543651858075066490459443188862978723571603022481352204601090635214508280639749275512847694354996203399164488791974379020957188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321005003940073106632075257283147115192633289285206967239347175098295260212549476433019535743835092582831113391153906337661737307723630279889869985799450165923769067548837988929400605162826140048150469482814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717335949663371882149192837871164639035669257799424573943554730449355593968480327902086141968150826064810924688543383329866390745478052636291615627988031878282707451630327863907566533621975063224248645769459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771518496417510715984163572072412243719680672039270647894278942171284264133427118318479441334606472431411501550985511712414668243312352062840657226926069047479196447297528322749569819632778728162595401202053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061844683749631892913745993421603484822883158289730942161473689255851699271553115588887600721703410244587440208443428273004673097955556668115013003388895838023146431382900260076322850347583078087889518031398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270655913084000586265639963911040685104128200715324625642637145635575769452849271126355771963250658965455364821254592633552572925952814993415878776515692231191510233734407169916564763982000896984629843997759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936725020698280738433341175283157314342639896416347127053034775699155800311815918091137880268838547576972923398882860323029977043066628869553012102727057633959897689410249968479498168420119925613480756440406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222063365824017454988082913018839140156809050000849546573730003274779720991750746178595157995320223728523592040074251522563861667562031883981176186119602216284743190797025036745928280467817853664739356003540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620534522173119409577830195360518503854961406218253061820365182733706211198939024488975386358180994491815784878336528865436542248302027892417049689651104172759475017812267858143917486494243573009091712648771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187222655865040300284691469278646800318360346381726405702707422620342971875558099386871240465622333891464658305543013155095285109726300508051882652726853353729373385691826937171677303161186474948104242151279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524927558029979882409206644640425859662008887419164987730275403729204215810937814713136226288666694547421244955284909149219337193623402943371255755699886529662364503535192026777637942482082860568936231521523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458729327052108535726763805642288409296658844777952795467107351932954747130150792208403282322044289446782183965471109021173407251397247573570085553127432199967512595825680632358808838843662032622661914149347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249894725830411451495268724236189967630588168208463274374412103905527652187107355645257133601145580455856845586504328599176765196193271143498665407774514500473072711714795712227572018128864464407775174603282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293846454960402703705085394190927699370668045517194160403763511801855136575451095247034602260020741742823849481782254906365992084749037583205744677959106755660640775009347129817005818769408027992690460594987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289089858279586256599013759687500785698534209443995971523667673559911557090061413018853956006933050826115788315979018829128777653969640675392080848582290475561905186375490594176472080908485239299663653777468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012282836279851502637454279667177148419757339065728715430543215752354493205346537542382048448508846345908533866772925385204449844131368637518941176848626136036819373635133932540806852269214743073291344676252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292292377520328744890200405326681393547528550174645317172145995081455613646925266502271153373818175978557950419880754858113362891549009039080607754157573613737559880187573075362487370012912238261134381039234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335215538523001781108276163630370902052595037790925341104705700465652519779256793314108866326405926231788931260315285758716424211903337987257758742901290375936269727234314893572572418837941862768645667758686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059485607891824015219982852269465095876314924712795201644676474027046895454351030698261799914022340728548915468068420957432075066211544876266446757986364438802325863608869187594422715214296506641613849638150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036410498459690602253144748229457070252704363040611144551422276693665012542523720743940182775250894143291521517059974545931259468212143510622763303318504339488951276720637291512493681935703191046935729052762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629939932081645071741734905643398652199866390557093521198524390679861502144862392843873982018760228547123039494596615725875096503200712476657593813721248011341535506167547203695791055974610671125417117453695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368544160710823177510780129830425381419089224920859536461082139564811320531607370777207605599349815034240640775123315121589992462974978454743857855952270892671024791991996450430401660056217629623401492821816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202774618583728185859970177211160371098273932414719793766386484316000841579272530611640850151500165203002001427433763904187886226352747022589848494690776947476132763910525994056603823823716369435554706581748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599585996096750612830910194748865650751261397136329276415834913042083009508511004140745574437849278985760726105769741819633696790755188383220173443764398053682962687328518939530815972138409987536577466354932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479073204569647197863154908628412333251748127848288098487610221009742783475164627905539385196688956965108760628729574590889201702386720740106024538941519547393281424662231268923626502720564026430217769031895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886608059397380546894867556025887068710308118989220242174952934582195353009915613553607315909567346990699248742680019538217524621053498627010613215907572602408043008278683562931983842710521983547275117642330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804363097477453767809820873498038498259924881067029775494953522829951654655985068742831762852085719613937978285057790149962321392204623415241682380388944662426737300189654337647650363412518285095120888648562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069196578047057471484600729681823722879775604960891581786867293632379024157920472836469702103139751800978415985500070553649387532125749616748758725832599259576150743391862284379883013460445408808178096854911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442686419708923064846305675457388720247601652577608529377210933584453871074027292591915246267623538179786930642153401316337011357356351110981418211296622107367262696156726748307752488744484167665737024004850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149031760755373219447283058221915580788075245369693274460174736052420586469686975770612186776197205874910451651427154954238539202325269751234954654630906132946005665072830987280338737351553752235631835702537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303687368385644037049806617909200831710788210498183315526148505373540750351082239392474456301096920422788447371696889509111857369268903366597185225377703296220167081065518126758009408525150684775792191389321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755712527864370698983544440961391737903545485180403973331374805235879109555830404815348045391878540382432369073043102740626417777626573010347033840211296690848180461624964873947345844121553025815222149945822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961907167977778025951163147757626402858826251481582164399441350619608117589046195115853908261335496038803237135222451696811805975121895900285917973908665244952804078271302700453774372678555325048503974637573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840975477981407268239569314724876098280345081189383404096153431486301124867646531547875845494652222753187735608908350438370811208824417599385864663093970481172530040203058134090447450511563770541035014166861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001194975185979649409914897138536227945887407609904328542281277305818304024945108706336986946867400894810975397100908494768304107115295506388876524905456599942607738863473945525114489720361047937572544723966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022078175397233716409698626492055766876156445774464466492547734672972555705388285907892317597067686398249662945556019387315271036272012429312017642522464480318195446833376399461313836144570416088834222537155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473294553124042477552083805237951012393843585877545499900127206828665999857909842930384600732962384262907972182333727476694640152692048814304227394388383869880723650340088095245127260013615257041577497895464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308022803665885309302704619400614464491862785664244942081621020383276111696224421386397311571301189918531699151581650258342812848741492753605073550149275164965568949868814457828072415400901161769365898628113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562801165332079254551969851910384281572683512010923679952429068679954568308388593013667218521135364172442283704920603648154449717799886187390619701265066843706404251244599519090062260821798454151398740861561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831854809365141752690405027399232695322939310360456984252059471087760223210167746792793562530768337722069298099521332754934107640682936962565380979829922150200761906567133233307191753110953769674314458270474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553208276044077452544230785453748112596654635574596043270368542157386962244479609259367500830989140006853836358817787486427106882578787407992834182519771408422304894979155179876782746847540849289938647634983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558098067233241678261782570891163017980881955837910754011805096216010930804225701805492976467841153876914307088247531217231379403723659287710434554469626659999262339332986411371001268040811602769694022871365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013938556806427007782965968048607751794922121562917386716354649889853835751532497431583541399132213650515513841090309027554332364412022530077042821114714191814757096183313782294342072543410315558281866932838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188669227447368995062528945027771898946913296346758587926423521163354647468642605485613157784036114314902695442750564803847888794329565560484433918406020270451468278242315140650702210485195920723120049337176738352370930885652643448419467734538241329688543063024778255435028195957175433268735831728279337741010263471725258000551089980879204274477838536427497206543092247960572140033066159793981569706136609839640552028766999172254724020639606096429945427059154600073536731549880773908300158133516035730111114109280154122806666705878555092703338500983115676285161649242550929283039087709889349460723490286585602054220670371568046350038260527637108239865979318483093676416563607907066052334341113779312161202058809514614377394768353883950472129452834986548086483788501946767694562326701998713318455453483736084512767180056787542358871951058956527978045378344846504681469516775381369518451030832390374965716214330796386015448161449552393511121218944302382695405786011646737366479565206587250815927530571313438356992004899961804325495020521955502061792779930564245836658721675351928175033449923918332562361626502081490355786124405183440403815991358271738433734045297449996405991865666415356124243080016261793375092142965808828322195705784317169794628455133096838246000369899618059298795066037607124327255975365088203863609588090400380017604750786697443325877232154383259983998643950114495415077009728226536958394380850912841104162909663701274249881761634410166742340050683616764823271038894223948202530869672229252434075060265129885763587813750085100568868743282747187323242898477335425815041625895502385448906849676764892829707281158435116760776172604891355851098147895084298498360559365937105320205997904436973534016628764532063718869382189780157321907629981036125683876483872698536012944816073176186580668059683733894119826500873262426696002409088320762261178399915744021058427898450630360141993392836245540276835099897204218596209020162101565192235842119488202091237839275571856055416562054553471969786612350583489628212860820840349731199881077259045458633766108505095823850307512842596428597494715967542592403495586097964340196646672175723723707078518464663837067170299541698329886912472818768027381254962938987607223408465709509894320165487604793394679468513437326303922309331790687303169941800740480006872513659785795859947801994965234272868898871781351617155057783915871386404057895659182321370814005871380883652304716712718220060186088112572603398624035420675212769089210815522603293004441018906372365919571195303028824858684782564883005251812608103542135181224715840046275105924448705837095408353189752152361034204084507641376742347300588220343231604746330435062814232108294872409025947644118910322337404979474085782776220482618219514282179811243726766258468951951069986737402273230026026150597064215274602326999497006158235928282229783286840199729036537816816002884117306733244966283840324353650413975362055091052197490957998605957269413840242675559674863774293085831406648031844531532908153215494345828804429373556800527667018000947887335886091364949458385268927913655943428817418645559410296179299581260809706454746509023426184034501081240335390006107346941209783867162772161370836145151105007720117042140575102955114913702554533502068141165244769178458694354034118791350719472868333896624761011830170049726189561183989816053909200891172772452827329958680838010737813140018760672501269264546450976733747002367678201352356732426247888048234362900999633010976573057107450862132187796828074343989648355242714487573058303218024945210923199120417862983211064561898234504950543971618030395685126538014922516948784795547241863827862758232782129939782074286755471092498218244686147958081408355004668755962615790617175902192718697237845472411298557573179374795351829558429913369281405884804215715380746853113023354946272141844005632397445875377275180714660165706503537500007800054761003678636991113239858621322182246246434350103632239859670172899284252341131543432629303907359534291441393387428218721484186131279071626858266847205954664035651133279272928367042153333781564897878724347231657710811890588115922053413447767521297746355065511098018114547089217012441063492394924242267383494394078654658363868597002601991541683855861557896701272200232200316861954197028924757421666766801524808240221111561909829095288293422784064903953396720086499569654470752118461343409778577773642631658691698762749541886831332475145315900233544095171491408135927319114619200677579215856331076125470709339611644150880072729394563684925327185891551688147209601141540566400389210281186485459504119005580079283947161996760030187700072991661348781038991897992779330826033333833405791933860125992663543506471009126063462523857434635268474929790657800172876659682562194685410779874218445504710482511389936542799445932024438989851344256726693278613295048517020426704168104239887877662828350193125454951010870376696381206031276179962188931877783052045019481204742705204573212548733903930286680853928985514539518307016773725339156792769039073362485903433514761178705177976647101075024507681616557253954820094809110586317329891753118416036402195034635732195947558600832082926751237884955166725064922072060974120312931357435374521855454983025804156517986227801646893748172397133811236953637358110573939105369179739293431977518803252435258608082755374099972101540080046979927943422345447689707580313149065499764572719969962803326920908915583817603213989264488023769100827420906680800437399250454122368497194097746704673167378878520494165644737071325437283139540962318133764738488941218277568760582754721153484064111928660919806142282295524907588525871140721341401635238119989127477891313975746828093424728231102189843007024439996429064445084478802766865394635783597863301435743073855224801180578551630030594803517023052917619376680448974551900622981417402254687938598091422858374494142946684056784478629968730373668633975101391007984558831971893984042058517831262556099075164256666091448576606836793744806529724037099333962928343483326610413687134472596294417153661683256929874607519349004367548712450125173882289594264322061718377059516656649038896234159034283659246762389215431621094739650098692570895075041141578197189457994851682923997676852605909408476925555603209473017988926182294738346886884787742147478211246290050487616242097572295178607339598869641860539956912742611053799648648272882147298654479372705114310364153995043024924890389871904738048121737057256637134651471541312220563195699529710744845423257854093196070374806243288730574037414313238215835562671427568755755136182019176330108628379725855115674172305047190608736162770832629644295804827975636308237643616154555406169800458196446706678102433478459880692484772748952982620451694370037112019129535311291971380175955779745321797068998107869799671161406472583557313852803781447946186458216347452039855897512317136407974683851455920414500521772122914466992786476520100365397889970941956779542290004143845487143488528556517630802992516764442476821864906215121917234256868516006058597808966236688320128396531227030746548182119994822538814300401681144503621167202444620482829677761601656378975763497955487255108091057813394203472774484748769898419218280856304164926029917623036263225044182962965215438562876070374218681400473863094501591091325421030325613511075755828734786562608093256450743463372334224085585816338537153069458782692020523950672724753690013980114964316594582971648686322048417952196424498327948806313464620108913932870531345561503788769211459272685051467713559958906322386507647782826901680360130617085698288633635339821664116613355480403703821003445838081505583034017971208224939095038566095855713953746347628324042175193426566863925591774337832554820703861056330126237628769817347282242509461531890702150820504218103977489407657214990832478528545951002467959739308411062725225415696493892368273581434607727598033462643125982788894418184917380268704496038867071864770831564787589117803543082013186565820343540734229283474557696514986839150397614126133607894809975591648249062551685536794824740509846496085681889172036998737579643980011652952702772372260193575557202326310147686928476263628518930484926909264098547249364818141283168938328312579566213598835544520667408958409231486257559110519622000503080204257370028996601241363556488028033999569465609588576321992603000468539755980287655583171070639975066604761486777635632261161271522426710967361840252910825524461538857766602779608089830283706877813984923812545171789875779067691651324603108755181479600121676201685543613887535111144646445965948986286850038429381677597961912729990459134396042836227821457438491080662673720398159683311458313277557371939647621394703694871344837965336720886507609494431067489386281016686080935487620406295314268367901622324344216250096191988652825018478075009309298961687893514404852784485210194972931491229336642838361095835911792669732105032865863719619130649857332086615243198917751756133072533690606289440140362467357916861241907679730721538960992609147780039218290966056780515742453948127051582786560861766280887675485282643534579297510910374324314804905099720134009387120996799226673274569721997573974983529556634445324345570326260278293136893889629676914900511179164157396415162234596241438799849972397210625910452426655628296014596790128617641535247864330478558149625711139560325150363183745061942587907329747990654033781293234354964770959941597021691810368147338333306415138771322151733984093817465683332375212452120426351494801795737064857482558812962411141464692661774781738601561556967768080635428081339262222680573586043957391627387714350848477018662653169748886473868243094196018928758912021387277096153848809506565320734420589849785682144810993443271437941292340729754793264761829620403614436411274652404369175428358566140595943326100913231448641642049764947955201717108651706981224160848217072171016494824798077491801666631807604571639525183860958271832720865705298255892664923127405067312348772034977998295609410636030516581681903848011147030423901820457583727316520859225399475109389001211221942666544590867792691371154950789666576676546096288277775199570554507297923666208523507816894340032047543740400762179909188135109499396694313427985992158062927042138267562143534059246720235020642585410968595512829598880167947485348827623226089882142602796694948833997353809115310261572752606151664675747231126731130456302101644275628278219148792466989753209783265292168258433047908547833654269758433077955719520001012078724019881349498443843676382704117421003695116901118016832699946612010086053209415790192889761397840351651115993464204441482768205455063418483061619799460270489648952438970258434171773190315330932147980542020896195125075929364901627814740773224772573220191350456805599978569277543054657879842859468408586784134114538241240720656755982648262576190303383417425184853854038470371006908765080853508640217621010156728291435673677110351164397836344042830234780735456691438177047450894587211787839154166530924726979519526863928233003716850678762078775481783910819732182904787993291396078874176833081865318199940659792678221322713459632471409529463076197396749984634936360975806725366155180785981453495358216014802602331762520150636639939135142877511535321241122515057065723115208537650284322101584061898257004704391718649072412089171456120249173004379934999420658663798578734606048061922811946433156292568671087969712349623640619373881121802073791598180109759080113272257843002501113788034957920439189928830051624292176003376410793371968133192067582991826078485247571177524201683493481941400539164639352182737104891500365804792597615834365135534943843191509214629308199501835916709425302654032980324967615843963471143532471437039221486178438282611386688552159846134450580330263691439417435599175378716668814004529689343519876527230084584655015656598952113011048528816939415686706351783192218559553050002986483254447747771995501650826588967139640889880567958066916065806094048513928010222769761561382608319076033245484652866146494294839667733008070732006751042625141429624471453687509706878506600593940265187786103276547028063257299061968975918873866723051101237949329259764957482625519592739447176400925561852118577244308889458931304570975272586707145565142360341819890315195457218862114917103453059657845082618680743649773583175770086475879964322744548950078096671196162151367695085308923361238666283481102939804607435534272724428104903280756767003377271120949128434487450813568822156033050438835175410814830375344342084122081683605813262345767754279316198604543050444851055580041167943376713205581470587272088253604731064967931847963735278844788520587318286600656334932560235908889835377725079702005054144021055946107207649244091363372278973994663975123411788366312509006141623227657028541048506797449812718146764308414103002375256537304952767275484545999787163325331050619024021518146810014651262851039759839412882369862113183152477649679577744191332394798552871653023199869802398398473198178817133310344339890837958000051319653452338339010909704447143479426502628574031518152035465072823118385198658029362135224379754319380198343291431250275776675431686988860286567701350037258969644586868341764738783906654442181923585773107870023191744542871416003026828372404946436034787690357332618811431010813218855279858973034505344033037227691514045318236187832171998898905508290896624197658559805783414287373064809852907821459411264949921965113612567773076994605802064072391808669002017569564175955272113593375897911604759823155872535644568257143746585668898203737054970452907158469737635558706092801201769780532935796783807950227922001052016768988732541083893192509071742888108107086232075510184800417696968262903923998393811623663847871308193201855592678658980709850229537394942175424696253547043954732413392476485210376117773112313850016187130471064778393248758500636199119677877532680713924689844038826593605108546523692226192724034991210383162262972411440835568680499807460483713592520753901701446937391640928648639190537573932945565367754356329489530854791973561811689434694434436430308714442549106098294828815811595635629933779473922097851104067216644803205310670913037594884345787343984737076537474047930809034382443397058305326958562998479383048081779750890193239788196447472813485486485639973679076903930252128591950959453303137975185298186626201176126095321392633918271825632758305911893721069157764383887227842285290091226125140805231508120272624773706671615372979623651717118309181715228052653759337375581282348642969322667847133869598876915809508115049936337356905900842892007054825254617689541647107780117586071432866240448305523642593775798552448696080726730590765024885140814761891799989629290795406069165098627507033091008866119931836534781106895005532321232310409943156697571284321105892729075626652983068346126881743502763445734873130812787853966825948045024450899453850626222815657206656259080710600907194741580643428961731315157060558113998960765684277239548120624654927922466441086739301705267840652247504105360432350868815254382188405781522951987895606499560698274532892273270385375845209270924294667346895933777896580676951285904490573991307948762539798998946853448670842763284764409804653488551209436064288937383710535155958795075103681999586009247940522051548807777499830613137902641282737157571061281736249783647450207227756195212674327358168549611969888258311261669505222402188114669306257495384708699586574599887892786847387198643837904804637462228161268712763451130947831661759970759508533257460284937400104364503455658044944295034531833812907850888333858378697710849820665102062795707669833445177934527180376911410207557477431542932903262953211497882620351598741254642288439527779549928956475434710589858515900550849005696903693994638054127440782720795881206109501826667505282910042864401159690915602602458721174560455109407684697973682748145979040455219048418011545663478335343808815341403723981788190775763064723383684807661718788752544407318658305011864756320301713983390078987542441102627774925945578726315160874870250480620381626062841567542997110084572360794368388317756971160717747601977362998608470922561241903344303868060751607783650278916662836093176759695530149368127979354666523938986549220821261327763789820294679958162439870593623917051175070504939244293712287520721004790036952035305417470268810031314275311744562464073545200130335154416116128453063638220620318271412034710573330570609561041999774412943789723336195293680711629464974174674606161944284195771506421244911540670731221384206414126967154566438915947177796949351958346843367832214130374310734291743734376354415907377380776833554545220416075583245001412712899741014947054886472434158991296092282986240745516058914963102100059587134719209797239836831280110175264318686111835170173586754064926579151374058216297242018837510297720276922807801732353658524866103735524636051974175871823490873819774519960413516046880860827255906104828222575767463581916629034390705475970348090440043043333174134614234541274567798725892324090915108730592024279001496737015134772151425714802387818972789099319232118851804003049762893873119886876339770569031907414517629750558295079055157128977260343546722251875194722777503478062988815802764088305858873211408993562565445263256262930428543993328255032950289369907770549029470796220083902932214441126573820895685434478522535584373126933754793765994306991005699082156031450819886494389488679597736520237763805269495558714542706585174744459646823526941056851933737004914486237606597957437429493137628495423747696298423620404069903223286254828223354201652282912884434215751270602021538317845218564841150669394364364463390329462869215001200331737223159459937024404665464401070954637786273667690456425997758603414233762759258536312643708973075795526996850313206909183067913265420306400314824559862392657597573177591286253089465412516622840716337014979026738432530161901013729788646954034256945572630522038762942326480649962381630855003126516805447885568199731089679575544268392204851309190268824033771201778639860463980025603720606929534601536735130093516649047599690415348442284064946435783962739597969701199959968970550071398026714315391239146116135818340680876053466725530504223979280965662210911118477896503351900312819308140470647874036715555211403407030398907223233915942351265297171121449159128746969645445570922804347338410138588742805072514932018367654986544261906876750303979569390242134374752592028444937070321982409508528743929412781595864754303669533654646504381229553856960187081463036000681022319353567758842217066271778752289539374973944984606881958992605790426632428181883297682570878308901643540546417536779752140149169816134993044910420427417299073183796985131245595860639919965966899610800504940072963970989595175746349501131523954054363842477157673057968997809351123101270006068315601347056168842081862105906584385468535226530994080955068645181964310455005698528640369722726449640722091072805065651759005363319425718826190168520911094446230493872762260130096650980181502161161893149917554486648451019396408924245351858629668535880723702520862903963751354424084167679610625407745354397187202203898292588150488174626321440193245912638467764538782149003218736052884016158146769340972434249669596797455129521524754130038382417596775542251548689034984675846106631594198812117971334525092753070140856142635030152714737087979022966356830017879902880841938939224918844891176700803803875888780169770111345334911534802106585087570025517363256882009759552748712253571825516978753150955690868985464837948430351870614923135734029631365279127615262306104314092395653522974932610180235741449400201075752924889589293245803518893483362322662110704722279517896431135332221513311128130269965705654236666071242736067583376783519101251099443703046290763466149644955996730321258522840068128863206013843915352393209115790604734139362973234927591808942336565260939483133648102906435863118308259658785978471502344907874767879956674248520510401039997571039402206306917347420208969917560052888987367593966293674017209821954183371282339328624773171964386256653145512699222367766777081986434967998415260451946404590163957896049279139291043490275683817268404705229814089067131491526250441754527101123578680129893682849339139638336607814229179455434491680970664913188453781202579621552321288398882948309602541545158301556456231328450317418576979979910789556567996082529165537586122338380700692195796394198374261176767691005073575014710412739177835963479441159241607409649189238641623144315098433799999574123860845568790650179660465904011900931064914597645508744169170936159780546717465899301704137539046825444198493069773963033614330040322637044138842456485319600091024035914860434195671889198585615655465775089014431777128616456862190012845946074216074295710458314004620124639011021019323688746231874639063905184609082474661222258683171698906360640254048935087506001935383235847779777771841566927112240044551677054193107303883694387978890462421759004666609104016362270064506716725632981356191695775856133339039827759965225099040387093278986221595494379970630648070964941770800581227055933091621184400463589378563243586419106154006820478790162140445787717398102952607173000991217971137542433348822666186718059345350035979406261016945589487985287382394619259273830058657862369012719296382659263937819596877763449192781383915273468510317128350116775412896963401763368803347613242500654794483551600242312566460801078670258603760993908004517562600906555541309840427357430050066877433135282061707299033893705322254670042058896404652393614283079185404169666783240709559587709423200941561095553433443491385438840861082486242898596197412565717042400678767123685935372271091567040606219434726020409941395472013175524491583459442749191929135023558344041872069743458860538337018589765720622546686389914740617138440911140542444892418125280587378444375990337027144323207852046419314755947583142919416971906297697904498821308019258759048587570102804989009276466743181741931273879879190866705646017414104518365473639211201831272642135299075075316741860411390850791740441726580092889664003508561829937247213684341314956929570401981300160608754127957466419031797332593924021074167670242353517422118285715161832976814222607309029636948713308807785556663239728334225270656507307251890309039502297514554508141344442816541436441049217506227064362861017571711204836658149705824635780075504562645374462805259328415678857985069010580452797562628572208304783543668131330317233238135264707525779523301528916639528654318999573174578016782672814602226403818995669379948424210982489742008823311140013410440951609308313090546550315955515473977480221462406761105271613757998628354396966578355245670079360497518767958500434785944448348747345525999632392588201044528789576723339110852081379948423471531895261281875108905121354654969246066557673451857177405113980900507493228007094056920655442879928976809138532882392312742649637907197997852490903046095850203281301188191897987538612770509831126796867211781006094288603341607408020448532441414457945472105469892916649981941599750811708399758552531253479307072377194823738336760655418502113337357535711604984088630696264989015115562982779223043334984493678391519856268504325200844798554629691262997883130293630646337045033155263752040473922415707285777998802963532890069840076781896975635402176619429442475372564984572265506787359093405723897937819146080319827113924804979411004922981431759499199310328089795747253376814606174543313264489248037013462642669263173424435742705177475650675563413336005917831376373759203890204265171691865422448413609465986362677543332217290972806772121812294501776642327167331091927523377242450590808589275655643441154844388895321327028560540600643524034011774394263831492694203667677312492334460461527922287117473732068207379504077538070248751397369748722080794183627245792671586058756843738256966015288450159363605799764879554666897963172764144582671409839302605844437311832195273578242992380530460979253217595294376466967178599565547975260104811160900192559877031603692890535464219693617900985472078551257259753257687803418428239419301167647127802001324490541706871940608748642509924900412437779902567236238752134487546868018057002677165904571741675093585374663278466147170222912775381648935814037542041316317966204626016830058358402780842508470610285632146763492164415596565399512441115272252098855763180788086283744439537336386628913943990459186935629799316913207431084912387826967081737983802760073283523713057038353881201921780745570539213125048219766934063942802345335096980545219196416496966420519223222933252249809906809438298608239338686773954452673632194440159865904066528670206510049409786713024508960506363114749789754318632737637932022795300108771768440261821800385909060770293459786409329695112338532614945655859677117544246194620867417898814347780270237891838654750736725070123164595421042303682530154992729230497065006887445529088936646551481938480563745544703197171864227209658706300498343665718303094585252856298925461326079017237462336013820894764047217671021078363530632839185289426309708352418426880666397245435194987459495272368823511064759383705313614945233262990060613544202079008007844359185142381095406246359288007491747232601428291506647356469491490753130404119487461275842517254229933765619132283441361596884512305097922908093477806100012024307933675460695671886784758902916716281510479109848199687950537574761034383928929818347559135337283428884922853939659501645942296849021635769846036566677068849790614937895866238978513950301955252071159479162430380571339104412351279771742589499718132089939724094576305043817654202377493729292366664085826356304701889428471366217962807794758141064720396869005733588378323839385156436769291095321263095302372341887763775951325585719886841563511434654449213461836258200177391119635659736209174802895107119119312161615049356614001989154067719147406045020084890078521044898407155872491318142412374531473909585928549192619551275281540455554894860530439518305516386529635114358554267895788433224703032239846296940370036386670597551896228216684947215516799401023726052761920617504560496637170762638459530053344438789944328543663014641420751502676529987148414838592420468435150528589264835412959996419063836222550061620298517908079995517161428927433221628069635121629029650503454559800242920380661131224998757487778145433349578136558008300458790545565523759643089947282941565846898062943112725975546930218879127310353002168642276336610318905110863359639860709747374195529341785078013653378687767911514738332525130023719102358758867980393855297049983218303899853337353315103458044340257304227586826097239834223150176408033273176226319675659897729718394229716522776196734085734441374759147793179333989243599405813960322813465924785587565505751594286116131767395528348150808518520715479514392667287510574413867697189020877761195924593592908638396962005768650996293038181454912807341809720403203633667664994439199362641452271450735037059076093857524400009474822971362377215926308360221391588559094614074069763012970865696906676244218618363552047279035331753093607797787984708023902185958744878960745237490562837474189310268062804817433813001982212777060921847008152523271459867234378543104978390436493058607645357560259838281625409849639983181129718814386395426544082800861930572917995688879881825724409230860777086263513136094630976774099702847276682966685429084540520229190030343224718982049938248060751638727945668940849736665162281336948828583395313505021705361118175021010169609373728821746838926180687188721171220320673364983128125457269276310564825879010685752080806339287513648175837581096955969933848419910626922411365611711295479677781238623934934140085470537845837828515123279873088409373572110045860365454494530186810732937611086797828280343661333397805386148635943716350087711931195598480218289926777976940913930849268923971610875162598136464279519116303391796129190017609532216557349110374712094579004186028992215511759156830362494716086505186322797429561365198303518971428760223750716059990468522702848242025700962993827914781801540664169179259696502306167496772478419474142009242977297138883251166552227303389644473052704902414772756471540923768066416528226112216605519035104953216953829995701741146510299848982516439056990939459868204985525831287644568389843421093658943105114075558384927893699740950138919882124799162098883924355873655545237536238906410726631365733868871501437667657439282983207346131403949526170953084489658005655846309523296318712451836616630427749852736202349067859155769362205347242611125326389143025289376673739262860646099166425839998746474341416395267773224693331340898922821352367160956282513492348592680407355181536071965673950270691353576343437674431172490845537767032666988414491148088848013249302584381770118785666357293539878114064658836941728387365708433757510447991235973659724344557427183847336205164098603931021959212112257203436510013963890649452967142056089086176982883163882838252297076581896118954572982581073394540172774978345406877641107780044074292966398079580266893129468908915006186184189218530416433221694927821339211827719021675202080596726274946300280538877794596218568307438429892564630240890633667606473897049687362677347143193464378269527837602861465838927893362323616036869658885994407170901438576500856237035707472881230042776474747037794632000554372747365847240261839025081850203994131095039708124812210776128324595639956407303784228294941790417991353653370609295358041284490195677174363265587334302844014814990754651032818138782109072143398374541509572180872332163931411848854048824761331564993540303113131971438856668338021766683608295032360405951367759271551656796802958597338036134406930781375730116130026579702426559178634319436264662301868725879630575563660782899695363498145223886600730147718791986416066143908057772551924487070829109767355499112006123175361847813176543955729503854529236536694133485621787892615474045615045230885311843897833507480699448020815830478029291395027421867886919801765554681814454430741911022927219318644407497903172599397713621809971117614689000137724070092348499633083203042973219675827894000846652350711551118348103201448352947448851886324133039606763958576623927274353864765533259261139160105897206949121604194384362769225020408360183481182715855343925553745823628255237262533143596996463666782559338210091759874444027185225129064251574535947961305271895994888478243531722562754131095998504427747535263888711892649770717055022010568232530711543895647583031225511628763968835143262728629815240755887995962098043946596889329519044901057419141998149858790000533489612069163111754682534858290076839537662641452052739360786513805722415068971855827765389521513585658976407301488111133738692458889098227602297339512441350751003872589482066478544539290551160492546556830179223635263775546268409049478003726847161026495088262069357484631643968978962700833763037430175619457389078848104243092855236310298355174517454466065297670819947432059951652915960087156521154612967354139573277516784434848645983391375848562505546017507922098835877193386013948967514833763802139034152904283626453763745808782815379047085445759676142103772361232961964022920228951469688114470582893098035700150410369484170547286922751970446946972920349519697662176641436203210987497172990814400037157392818915284083197422943733677477825870921871722529840693055569352258367862538776990371083298779795051691696299576070266248772561115321024522871797030937380056335405929310890187400495751330564575546864588192534437227170484110760458345052572429176844235610013945668245660428800047407292619165754409533650005445833313333486658197274927600124232382251718468930694085723246155423928138874220276616937979356634410450371155982367577143124912796231411501645288804409423900517346456378036293953277878016360441042759186420251677118235910812494784489548807258551257454960799569180129713172054038424909608736362135131097528620986224262418742435783767729126417918801376752003205633261892410186165130348102440068568086061104811294274090093752748578585868409229731577936688608619964429073615749053303451074679213921393573414693782678405331319923544330346071951552057006610011693010611464556489168050091450055613784940454369313485910618419330189545486385219860080820040286332226857792865947499006936075105780234742015035317737300836494989167289350909354212097520747272504366618800613349590930611407110464599244759717542401996540730654084169735239250415635500390264400292275155191086294136723600026941207127811308763653161522443351622669190123101713629501331698077009767031225923340995423527648984420891092439027564816170040721739272566024295837155710671685414187130035713102305447259377064542064373028381478419102186882184665671383261282637806975309886082906633039669846839624674768851145064913151861552462947924811159873110907977115298058809209285816227706527567771953931120357319433459343473372951899415721472276190367800430879590479992664242819620163009888371488450439801224462455602660408616133199723284978761593171268140040450561896686909847082394137085518132619963768897021241523137818733130015601121995657035414106535356384524396556426727217434505317089708620347654758674128146407197922805744695406849279599459045820901873176586616251787331296935726248763018274805306560029462418101514313186902408749384112421582150837307412833731003222668395769073506988176827548481773049953913103184653278383865626717476001806278875804925400887840392798564649645155278927345020015410031319050962710809628895237689828726513914081945116719591666318188533731279822794780963841863308123249343682732708847168484082306510680498401989966141848682192923712432262932844248302361017983910042699040774479919083761021111239606725071929979313651770673164504798623225519797029925665315101596604596690150887068882982527286405989514250476556464386139713909302025719458558252713927198113277588869554462920605202687675221367966827468775874528760778634491382699563480082544144131825347204948014212654329829678466860543779061338910206076538974678379909041982264282917135698004347246669699301575114953715204374031918107954868943240622909458623262452209667574495285660164657873688424654026560457697329001295837874201711510057426597492533286825866257024583781152182201277576078722787536254417678516818491979949497649100036934909550819450205563811224964796766249650785802327123689446228669796319715390249901099117672053296592010243274158366462851035194005414571907148638824694469038224568838850078244103925016359715374849056945245605312540379176033101653477500199864958058355366142071699741173310552540420552110773185810458946104627355807094714668352878352224424395195109596480193399728225441237291197533523339788200500320948307780662833646063246671001800870666288977157613180394453085177859979679161756236424579913187479952951873675602067243360786278316446550471333425577456220329705837065208461481461803279556572311289137915061078782367241706315742790860275826804832820482530595944865355305335573608943668378778877908835773316581566564046333631178965577553867451359654743792882443277617766529977537884432122626758789612663833068438490058005776137309460432457331415978761655537226301616423353451002374635368298942478242558064807664336180523774156314037893371269990081154608408142405869284464087423891245775193664669946373591584411931779500858480652805204513861789723299109646117709762971698805474148640403588839279500405680966882682526783325875358351600505794585314848377702967618326360649136605647118508049163591118168057356862567675748362796259542314440842686944417808465459001098300832470127327673251862965281011987566742512371854719174196446109963814369225276487686524296433284880267104880448880155910644769829183364432563837983478922499242473473474925585572931518611034534137335672274625782767187551285229615719350186325172175999942277944125127694916659641176453311307678394358755701511268339788077823089327672921967390656501679098849598999718362018377246697916468158884004015083264133901702440286390700883106649068349767628800880971315772643341647052515364717730661392722405632571001397299899095593747730559636348560061598496125351831074504282805991011356152764613718732307405486443870951037623912931744139267996447473236182136331185858040699365837776065584149533283266028778546968943002292685310193430198737058717358218098006693891250766257084746595062899184683469499119620505628810062352434005024075121256597621835683455225766840491652515707584146144132895209700930687290227163705638590610592169694573513122969929258356753188344521095375701735632618166442459183071917325928053735184818309872294562621725404441898640397503845136061110062107180886892905388556538032123197766450079788089229139071971832155337660714688158886146659370802181184864094912441578015869647372390959585803117354939639342323981218838583222690622730436915479647732903620310231584622821186608285896081690940900061896442134617344682521433863060864107649130309630386061561226947756727056616419832266128295594054185267009938944181452669981512196539671905138431353655032131380682424517348894759250312419248417525574038182351139026163553709368646884710152598668200629666043326715884702846725282736751363691589349857215149576969573937931293333878685870155864384721219088131194713370873382327500056239923744771721034792168999587001504698058956236518854268293985666712723058331747394679893879179844757263966997256515093350494496239329894118380951152202738593619916208931559373521319380127029848188296824569246640158910245224083340735294723767660187190835662573439468354704836224454619937129219945521607705226537983475106667694632555115664949116807052305281730869088268238012941254181467305845934358127343340746347109810169733784511370003614666147779737566767622118782539423603706549237225664751927002508248888604062234098115451133342239017736841135991533723731846766340507156896681938103585480799073996134538888268575672435045918997400691044704111628786526792010616132471999844823715233499783637523014313513282695539529010864942058186043961590530582597540015734752997498272309538705772100053964188697048745289735915687927079944165810494426879390222782002617388424638959221139263874954114195943300270846714237068128137782298487438922580196067322955766462225607265008320437346368920697425731014887778328145970055062112529709439551348206970678092045789009005563599319303007467104257017918474679952016450985381510153969617354552778043062677579487710979913625936622349370648370598168419144090086928384175813696077026265263739842179275186558553400180249473884247950763593696251658159800549011079707269532448861374349938844083661468592090201387462929729093845395689309155247032545649484834255843539275002683980891951243857147278892288180047279791059416493716641756765094433746540972890144063281301891438633928063344349424002602288104716999725533939570764107067895059052416329022129176157072028133796306498598823224267102982642645482279327154804587649921241321268182767230903475595793031158482489483014173171934310466356199829342266084524197727430008947575190644364250704011573813177948095995339269155798840054782895365239563674165729648804634630573673711721580999020989445373325540664924455565704797720791458123045061888066934773161154921352859808111096403564201032065031387832981444308563872065793894070562327958687446085284069806283901283199404031753698172910119302742164874460186196321594468453807557098722129647584261058043710144144891074881337667213835454142478713666653871820712848476170700280230771398620015232852846749805171600941770084830607816307406741291585704585798091435416092906134945970968892571056791005567529007475043799463382111921199900912215396556317263329873593583866650018970210376810565539125811274256503658921429101919356774007966612713823071408188284186493254567005047890235799834629665205390345267229736797112229647576384279533707030794156328931174663489962869105186047227268887787587979536548113309718525774883625499507808962383116823946505116854708626136402178204452762262185094687714584666765889994793710284570278582886494557819210247088409805488404942892027586325135120327683691655093337575687742311036161066838321580802564333464542717220249562180605935860577836839825461822364498335419919081817549239621687105280495142246375891201136159799843803455389874368637941643003051303788958312792484549868399065860064078993352812785194098401671972972706993221339071842095517824752068026846361653977165123457434030443246614781771199610855372824309171126351950119153810332261700960781979229460355260187876692362124863624885129035442839737923251389555064014239130766546753811452440247068376528064142487208913451379638599944935160867710746014327477238510284749466636334619417230160773629762889772512830025808468772653015168202925087300134621992315653871990410605507419303633901844423978744233849982606967605702053536845646427272703489439236648459002459794947394860416671133571702812092268052781568833531326433175902994653857485218471097204771824805672156192313199662763782820670627977864382255808727403553887557637225829990506735915414714947437264983978705766331150533421161217453408965415215549774624788862911830352604036873282202507089353084352345808150719569588924126052875718396496305507662860091116726175300728173888458812373598537269299262642666002172976904093229166457800802861573105013834059960521518020233746749329410957691399996766385217537464885072146422768364860918319733236392159249039000696788812101129746358373405258687854457022214620873685872796641453017626335415588794059073212225394670737826546756081074649604180433957953872113306464679928612294857139338563297616178508911558276611979023379998663577047496379682239935095795450820550511189303477935702443035283044283470241059046122468081137539970742874343512072417982710008293319137141928877140989863705462711361421706031603887715873410756266034626034693205757463632653061205961474109678643663281284892462172769906044003564831372701718432611076286907062962876782483372521816784952087018738888352668188068856155382102917938468812597592238717575687377663652172791829359888912481290484999654764459655545951531923019867342143962690524533746344986037179272054279681688929555879457553413146588128331024557479280502008666957169395778015341439067707468844437199722947314209624309846450531853965219060267110060566217145056523961676291582141003930733389291862567033371447241709240794482208195793496981155249255732540880883164819519948492518859797181791650718864975353694319576366026242617229242548005605957217481535593409253828324333447779423450894659468295480156164008840235503732349654987866217107668010625102744723405477738722823370632442234657130998335356361790451296645359207727938793927009546601461050918027326975551357136549094051709869143338343735386223956625316705081322123467368781442761854788305850058107851555678807693973242122087306618262009083050415060798786720780086387483147104679622180439475755630990862442443828090707516360392136097396719349408198200518930846341841851377586942138597002519235721035235978147565628370064989358061942774783767367165686044012425353942546083747346222496082982724724021875373415104438842714089303290396631705985272743575722491980439640689369083307046069033634037611356692720080172060165258701662092465653183217835903483184668496336231773544630393379348923795838233801483524662070768884177564682572717136191483552894403611579624682534709995778541481648466735735611338031920658221354967829629458379489925909065715085858992403687772470956022520603041059454722357343076199202003870342440222349094967180951194798118123176621613281265741888792671780402385780055985292325615688246765163590483405880044838458230241998417624203975028214420332378136469561291816090880705226927447850235794371561428549610330999701394772146061745007882475417006791781881337307355387867960101242192434173987328976322809867622937453437289981172593008222324624375985400183726608738326471207255449130643364499510019478254452554256119854446896338619233410886119023663625200616717734072684448767087078633992885187857488689069559520575608065535972362554866576806599730026961449979138639491376433439511781865616972457501195552713987666331024199364961593673423336765935189951082105085455865902404524395014958657097516880177298008199222597252891615283264328713301912072026225055993021055200593642720672067436580819591983894686241507538027516566228260425584487236963423152737049647360124729374705823518946377728760858627139523599906922325870359910709275360771787312754815094035127013817079487040027946364336884277169240128264044475383002168060555973991115327567430425079168966493653461066490303392645479826245075275297035511702938954939260502611673280508063619113504150387225535480524950307259220832129916769939385789605219190402265932968932015280538558488326767365756858379942868554314884845987804319937107848408933741977908003386369665963270004800753410733130286958286013592876613508856941307268952706221194446570901350002850781700817329693606994478080116508997746983832753354462231178900414244561256592361906713778221883099012620503871386374611075471382433334260661119112499604311974873003557846753855809319405365641438724087159307028002233620240342092669248410365413924603252815139106025806900867924694784641513774253049081133374859256590325210843787058369018030593385329700109696000874250448141845892598569653455698082723712762554004837927076410170208700067585244432577526457903618268036052623878996687562686845758711349482617027872642077405327791783966059302468053761252878362242163181476420476433345658692429156194617414792930326727453319879627590510582556439064127960599605162941055835770035365632428567139724330935998617848544097181817255447779140932095918405016499843861280737887188167547887565056631963197673047058648946240459492697664532851091987443373512156644888145132509782997998568283018302927181265875799749152594214260663844934761823669436130100077834745045443839405946382531641746962167963754039491521160083553404587300703416744768853863537241759119191257302962875769986698306028450551254255778130491965735370810975388980514498281958517209632887924975966878585576268728363857714282335234665679589269485489195448742419522285402758101327257258848460465495185162225272148589697272632895152661007419195971783288365945597685705772628478559544883724075791628836314849064779145534872657558501119422648699624391090095948421950501182854570218987410345718389817904863646490829677731508367769973355150741700812202580538852451953639834531876177812318292338451614920189467872021748024528159190124225586516987472590215507624974912267376594563307616602119434840323979914407024881734343302927257109286573898942406495618109097976549851184247711339007288092990163018694114212611703437224966747668259888183377748915300135800231460242604720552757993198994096431611442985283161148698973174864230826264934163168452780162228694521765248789069955609915109601587941691038845956359668529361259912457292837693574949960006374540510293312523537194211565013315475373628090714281577318511859276331001448478115773051572774116363217629955597106437427871640408298307104630541915599371481539161255478112643743890397452120735757677775074211505082981008573752383518383575399332029759891578248805041207059046440732276884830874353451226454706269409754445136975725708915057302324257356727210851684706739011137210182805804603224791660073832691454159319829243254337464860496339653422481729383254751114037593843778055810026790235933847989586548607874194141688407304341734969042406917428958291133881573943227710156196247763551902402171274686278247219799676266290091917695564381053856926401859147616695431940776934896555906031303415790944551975602966248754548790911175326993709371263806722567514630607402334459831482057807785525381693436480535680794520453868887221458052022813716526982011625061657297379748075002972339219097501220494749417006593929672960287387671952225506308643850360228641843766240091747190328339083995367474686131010932754508537010324881645635754895586036799189361129787619083567373122748237818270185310642630961347248714360549318903770261332912020741185702039654923368590863272900347872223765989418631895233975752644826232284678147416783941758787792841341122301988055483719196620859931129697830338865167585446227913405384476083942355534490331633000124757996527616852631945329309596273131467261926618198321945664800489127240421657304136383304222664897851556264565532197114472973260582132148615280100972768015104029896520206386068600459816142852374999120852093472923079773503015339059776478342890747487781517348157362688287288473096086418866453032947600753309358538027704926007328843294119520864829711317593752534438895881425554838517329528360113779153290113357598117475908082955904750657658456860498951986993050662506017097078329876063046816009521097297787513601863205458955781800595875717191172323509157871375153991255150526069594760593315763509091797733208336136807194551564074953303571884225636931711834397325160573650377473214535005635956382624749363822470583684752142607279199552510745513042443383364054939700333371348800299785946575449427651830341211197021029987336199117764793004764932649152190991777236255805271272577992841862212722025947295783642415695183890426186293194985023980882790182277086708707193539801835763828047217627026149024918463402523612956451260017975449613122087284837388331938574020189082817678502985052621563352750833939410145554721256376368546407909464765381655080500179673737431409908947484169143006508118210399009419171429055442874348691778082841271632833493337387601898051923823637302197650070299199840953953640819293935448443378672525707772959596138710071579214721837075804150054413498600492907499698937903488102082792506930057423601746771263982504447987947755138368875388820775721206353195865003008391065447149075492797115572184609015539457332518638981285824687769598008274176555499255652637871847498870632914943908030741726036758968025487183739999619682932661224121706771339713788092520170262301471782080063916213598205297385505558209594033326470891561955522356638062641257479134638253749259912880143126144362011718100610472258584185002863415621156884418566202827276600655362434165318617270547046018295233295364896057333074530647300773945817405562218010296586954554296232136268085193584500258735730586665195617446371811134477563610293164229299977128484739924791499752469757461676524013339887118993502919950725940354177678878427586317338620212314331223245499952102264641917059020637215636487044104269833633331382169588483198120936936835919041149316234787276366275921545684107024174052979256942981914981740639527144786905118423433719559261231919375790621178580909320588479483630579561215601056518207521648952936475049978364259687880476092599970186536111131360484481043431372673271493251764067795912827041809284099302148095745786634937792271213755371254949836461321910547901195080548163778231755318805404834474568234829552821306383035954647975531338603713165764078334088593594573767196740862525180978181788036986011661388347129991537711238341545287404899564690282603006885427634518962357355461815822221407196786684310268265573811519493713161823492530436547791887277303957729166760359890682984979275326445793020562500419821581783367975832458201670334401637519436130793606687706059615507458187300740588554185707771293765395461112355201773745267536502771236010262637114085024937545199723881184972004852954076053757550486334985176039343403658952960860734480553122955335688214567118057604758841942058349633845421653770202262887320328142627192419113469807153506236406048801061017613964306550666466714597747927512750131334659676463960699440570311860560878122806328967816576537275062967283576263974828384647295018917985604824919850079916092323997667196476783301263846508088042831110985025546612968618556503500123610685297435664465619849209211012663758311954624011266194893008382843865999999283333794876598213558839333097596539435168747702542038052033733823178938782825430477368592737723574788865668587360925686910563774468511315594786736516484921786038920469205739213739659762934266179938759886105571384739015869538001440033773942596352486926368960908705395262510961272908873767982224107476784882990262592141720651354432719916459983330333820509702367037918912977711390002179646455681701380894182584629598768936359243937980370126043700019545375320947585656686261869137769323655538553373664018114260401171263453205372512446880839250455380642547662809345060391086151194883142464773935945361134626325397903053106155154047570431835806988891168508827835754062604700813348942775641988110461503391081966974360385607326708715608776658858910608960720874715826970169056266871992681584833517410241095060497613332210304683200931629481966641786641089259633540386292413015247640415195327618247072352789772769577454314914572040541799531857883749810850505715767111058158521670552201100240312147171579846458543324890734109876109929564967615654471880624428493371942227474044983798596475584133489410742608333615212077501929801512946567208421155076388164598896617646436976032892432451053029825051224268070373121280839351220225540841513202947999805751376864933655676167849947133492695625773907848371824828315567929819728778686290363105606858009907222402153876614713644801965614811245388627165423342887561979792048557301929997500417588186220355084352693742241834775423575605346725549561541898838178560292676908506131365952880391735556024568797177231060321745760497595023225629419637906309379558104490958762135916778658295393030657653092307043986757062576067142706385260554759595253213047800632610710768083216210014579464097769268006913907193727253192285262742895738950413768547745929603359227262526666835217070318949628272456528458241425460630372804077747979885412946353979992464746913355243372318304535384890808089315251813576848527285891732859174645036561200688294705032047169041537686780019293050636695778550885505423698901222980877912670610523562973580602220182943158073555219093758657747362647369928888127978293339349986977352324137599315546363119298207065372747860725899731206930627210401572394384260875603932638706392902219030858909877722019855938537268814793228829223698259046430933978816522998597111438879191681125563749831316110931906115632552892612058651598514939761270556240876767140605906275936789728632046558940753192715912951170184437557585352369782060346030811140856162220429042890528709348719387536681994211967871603447511656321704404160535134139017313668946388738555313863682433699759859706164570626704130459126437284989148356890455609093481011580923180730184599840879909046157493109861431331591978406063568318841950570759621032685084075395110460713677431506318655681175045684291098593609486346869593672277580773060728837988142468100342685874419533203422259222591131568718551298843839977181848177575276528687274786799756095598144332697980232246925174800848043735402673868444648250945683719869661983308898587835257932328100478498000016592407290314660281505647241103452031576527657717145051080460305129759639033690487822708390133104005385149373537497295161348972263979021198896344486620188190295769295043464723057845265200580679906453900495542748739603331115133434232393928153928575524189254275336899367076736032707695340715397783176932998580029024738091222270247003014973214830993493324188082111825695862329465185756368975416357468959866026651728710637317821154407328308409582293717686280368564515915257032902756903685712988312781187473459607417310097884731562838649486193104350166181226630376959372676458853838094304945302303026801421097550250389072148424600933987543991538384213775459724640986873792660279416620470866328438766273660878272150035989277651707445477065383961960283431028523840913387237856397953682578837058304894726634813482131719088833963367241231536397295203799561405420265235573318226053603015161076727016136677534720210899524060190190731071671157213153131399108734604994855887930555732907486675692499177914777762752572153315305919154375764020855624311494453725459568097025647576424442309047407014493872009314855661267386418994254949313631047596189330349094993072843240900986604296477641606362128947695172656741692210412679197620262917558530596160588359815094381398881554647395390022108597871859240596478027678892392428047732324168011508809942907513006728614972737850416001553809727869101165381637602995600199875677105287434179648634948759022843450810248452324285061945646492828833802467453143600766539393253169069347153411102590915595098099960777108192404340081740190904995224169459367084155126335044683742354082912646538035494169538468719159478644821690719718827904537417589786565396354364174964211383323912726608538295677462642204374861375086965603814411544678174631824157801254897625802405672218165190255256466551041784031399315527349701282746407837967734310395750011676435012323921872173693956157256120962946586125817922599712293601560483252932466059000746753828911358876966050230432754644157727204135535343106923020990409588280284249254566092255047367866335359776701147547793789512216395039174883700606920832143131056511403216591497160545033152608756244303975120162704447566549744508291084491427532865125788432014337191619507424345854267127681102600799697732731091087404071388839859302056854770568128370032410609948808912037233751569167712944767701057362851752692267386733249041105761883634334373993174057361935369077705806991870011038755068258651233963419298473309667875732032904837005690335362168372869158682248493164586413099556128076135431583947979650364579844225293998032521346097286226953626724707628997177963276334614112070415414830530440196754581623598606346657273305740334246756825399885570038420395650977199541002683762829751197071569287780588231902617101475800897373783464992100430570761585953225073361087295702715074312297920313721103151205786945818242017418320565151175338128457998173296130009722859113082820909053314760119678185038367530347047000578748360997590909129630344182765505119842942611742125017453108837615277210320916233088335710208577216259509925298643641820689439656908564775124318290301835339510911467513718534246305851770744343216131691304544562072955779149889048547850294942518699230156420482367299678208543277081713993729713647285516236910280943949049809571114798735326336108615449092136210719578627182658984645459587009069249248820523435112868738626912529335695565624401533344756716240947811826571155954756699368423562499979227723332856784786245269498130382957671588368253903484616714968014138599194055597917917858281975784812372478022962734271327380701712131593454022544168614641620641854955622017580271717419329604030724285575914037487524125583648684782653057902112930150460093009791132893911020928422212628874397239879299987221712680244269570436408269175123947288580976631735219034774020783010825008230686748165992916214204378559690700839634317491570400704911133097023046876615857483135080144475992852020727860406246909862458183710566318254920666633928689416422316813978537417455898355023981413476275686616221186367561134540185061230145050641464766200254793727370169115091057005880583855287751553568346135550888143137449856363777369433473077922369202328195126019883348531930841391296921034511566461558171845160918653048971195380110248525749893158647233999267453725219148787799788807562673750638723780564697643526861306774761161564030889810722990061362029138553864683684245835443420724906526943131926363064557919103281746224652305086811453922379034699935761819228384117831112734266093171716054723027485870001047866059835368762042349093563146793544370070867604441608093430388964169122938462935021661100210761640546614532826133025098992955391927596299462782632632116565874319551733594278724799548287227810793149777110353425543816635050218200475598457194707642967827158772684836236111806592445159528291523018180897167227176349652283750680731317414453350933010558621571973367591051672048856745415728163217259397927018267765927879072697595865244447986278487669539491461017760577603607110750866034557555712962345406637758448773140658050218144414570121613889442942543012726143996039751548809684175388778709977105315689605779553635967007806998565011955361699581910918533374036619990661867745865365937828951586192168358385372055171819669900290622524429719647760765792120834997981483108425338006646056465462844105959758701053837837669513414411711576580152919723932831823741907241827055621142924812595008621934825451856553970125840647774590941610778984486679878798360359430670508264698506509650714242879841665013303364759597132945835690587596970583659840237526455951428415274309347600284805973744511548230400857745381944142354918783809292297831844140223844361123221688505624335418588432511544720643284962084563281194108270588318935428845436505484535633008842668569356364289020276692308486633611829914298726387988068299808612394976329510463591338269125251879466945089415396493327345497299448983629947399175474416471971731779872683943602401052166101498152655416254038545177952158400249587987974104952480047535581645441160796496743747671842211835815737673704896816576186466844739957457386389528495665189574478665977781950752258882987024789009640653185204742376952389335501218478599660074089650383859514701804072345776878385607580956164533921688489754259830599175376101323206354325344240488600003090822619003730634184868861438763736494178874012048260950512759863390509770242472529801758826392293870793673252211167057926441409085437401485304590250371696374774586071914054256943815611701443788844188830915922927192035841298716228668505324603894356500230734167083751864595368025275824052092374467657335127060160117034908068222327234121408469596673325161565758066590243101303206411537511687407756787406035925878861719736349367711142654304847081133303231866339855094943143974804840787647767832770534880159671410169844356697808454878051823199575640739788317702711356439242044520333007609764367969990040958549556201313584805875374947256934033090917283239418369219324915186872354773939212756117946640185118001380750102777217130642042532655536114323907882035094537707508434889230102069364851728497612938332579316328040240236622477073584885055861960214818950756889614649864710858464453732949655233372641883832621271178272406932265715707864175572896145338291644891865204955272952633002810498231098573394308160225669817111505642180307494361107813613896822048773651856670209197871094272276503470633850855008421170940405082569924575628282627813751332708052945523221608454057654378540071799081276883669537497522864067146153456490112693874267114036215138204775875494285657227853366584872908691749510102375874976607230169518573650905794918186915420495148189506331367232336001791924439759401641677198359451069342721729348371331527082522858781476449540661682660663281738590646817084809801956309540191002303038377210748322781390116820825823892779361395612062162133915786407904096277774306239458871168135932412443371094483087422994896572704969668919097678729567856837491826622807594707308763909429179184646728989350381665716032383413004822149073557310114756043910764230704997141717927224988936251185377184456536112435366803341583471099997812750459310729492016400404387368910848900002206589689495098835545433034480634690683626426926225260480503822296566585644546381725787202422393060316745016053977551655424603074325691453841406677000933481726253378578369549688018197142075830479025045449329434408065470696670920819668718095745182237903331168666010658854646162225136807558072817839904993820325403522221479127873573379240505817047934361116046575203509649920300943063385151557010396543615600425020917540836802510756962724054007061307391483997821549752696200677717461253751774740807704214694980724656692103138036559013914463193378524956076512895884703956836005240560377322664848897675986472222368704572600251314653302789490736683175428527930436416844913090148229779444145397767000504764545394419974425340090220649707950657786676256257904167879517193228216048427904222814574555552585011050511185320512824817044934085006511105859679661134805431579901002711637041462558845146953150161376530986346793513983064421721253914210484840180699555558933864698447097220729204416001744645744857898852191332549713302548209802199209468670551308850411232159894030606077640708862153022528396306106149844929747045128120643925095268393316301653540689292805651871572657874119402174780917279954187411811373735348232049240285444372854241447866735317203972840999210753385213768521899202754763751550880323820345141044903368786105511397455564453441335280589331495072415453650425368635876511464557763852861842225003735443386084194572025780836246705161354412193605212492654785579790112658159199332255421473361025220356400358279085755073052788354315946741793742649740740947948944779573166096230217323972884026016215508990745102462967183685916037890598163574392667278295029918179570280686365101245445154413181429654184524519788730520200288020433895520952126242506820736251646482968883150509597010002264372135348785826025335789842849926425984938269865559157455227722304478367004512926203259072844700707182646394299397105796504924027215130909020163225789293646620690791141890917095548585817099969398458241888623043463864685370946920190866442500142370490706054794401636362244842049461414540733407720561367537799471743464186961441635564294715919709591245729889392338150010412294395852881242903163818939118293640475674801320054837776422413083227337901680551345611878652637873908460298324844967776765267144609098427240922194420872905077724742271284919986275288409545361224426081223673026362416664636769565823405093478650114354522301721104318296746118127124772674755841834739182964689242439083589830410778612221646674139274580844109344670914076889081154804269904644766179037069131864316448729348116247531427094795121837118954308016061368674233086520685683926148047844566474945748323298371127834849457568184823573812967298602509445631002138707680490430110884104356065956329135513636595379057745086346584183793785502138550730660620323618920265343796554240913886678051764866023556868010244438199821740818683080632657934450136606958831163527659019637109122168302179943178178115975625693348118175901637045395488002543869195029394842963338788023245402686831159207714726609640814729742564135237707132655865672926093521313563269738633451392323794912727416044071653328372766636069920782898851581890074068178835600338395502491054421913694943840259289757680416479873887544190710100738825026002505293715712059882179975190525154813512892650703503129538879739519680714631297973939885522406771074781329661125142444094254620586560563864841176973765093222320058137389888598930223363080952193426522815067530677311683499200307497844953331739235628772498890110498291353809943234673870647929391838298473650917415993442241801360907021853768394823719725514881388163528250823780875617730371859331023769015518148956680264510669556676356270331637550428218469355260793128677171630081522970525013994404111099523758782168987072283241554043785949364881659710601941701117753081977960061020610758095418438226377174415893089344024548077635898598386460044819130632918212125220072806340890562731361562825142597291169096962116740824716314518917473600695966991423080878338378686590159867022321428691570141424807045897219105420047904207261838945659167576624337481652334310131977778750626481447896237968544918333932544522632823898399552143508647239988246182346783334120349696963465231029709800703127298113002987487588451556284431013156099089461587840584003836145430627502838434516836793994311551940672336880332618381301906515931686201918396364388118286970411649458769422113657698149517318604394476819223940067014551279282540565303246423524190837891152091652075345011477513376176131603034635001583043241198303450459731115480235291472675565285396154982517322187028118914755821925109751881474996270183201238664665544709627032211967352066825688348737596450725120796914516873963998729508929286150574509391835248986417115156337107720704371942989785258541065122020872198511520119682006685154950907756992161931680576122550841079956447357236211513844260591187852361111576674624616760589490884732188251188189165372941301847563650836229040968772707590630759517373446538123581672056998615449337441355115808285999797250700054256958448290421570329632969541837206112532778185078243532391872673797539010604218982133356800149176292763589739749151033610294485487554126594588308262730872974158135998785058970815642932415956520572243886015842078104750426281129044255263505482966134319834755788519322226718693036456672710264959940051166308663731727404454569497374874852110331775493646253806113344743108068326308466220393707731052442799951374501935266142352255141868055104005021438767785929901108592518674991313145000872583711669369824976994084161606242840630833289799716187050576519624049243165999515189664975475039001147398903189687832645578474537251804522359726877668762428507538166167924880008234090320348071465228902223080614965742704477221250266192371423562609291226018250583731811971039075175338577137807762131772452879479158317148432273147350683717788157985202303528005999986977666937008226708804204330427176103604436021195740531832397750825376243533599258744806695231314095082672974200827195918716169601534065457814757101243294703404989011724031456270700708589135551306594748305010926753310504767668510068727953244323689649387243491401886858021766970655158850256174152070315092726514587358857716690741189566762941681340578424067733886652984335828209920927960002560537316119574865172971711404358368302333102692447556349630182678573511105639749473357081758063298707668034213096682726128479506043615265442170363554065832901954741126321617941436862387824468108851006087982065719694731531688727655829254841006002628870847072641463698145467602306906484800019508915292088347520029483301183570714748604600323180366466301137834614810208010408241624643986285802753525405414811787725784498244012153580883263111576793883443994167425526718127068704857905001700188276611540259896645638226952840861257000003120151341462146274358818811375215962355090961869348253038196808508496757130802652210017544521504388244696353913545222948382275219397816100630815713947347571643310028857201156174719192266771954369283128266043960699254637219602914253777973983167443812080972188188312362266033870753267894253855916918297728332731261550841748495123598915798601931046302040883658123282833932828775274859787053647329515614114298532461034302555313019496430116703792865637669569854796374437404695144047524862747673802558967408496302725388581738320957777270442659676450234624195887257359338615526808120477513640278605967148993681237120118621234905481712924548154302380410365014875356745431118006045004261307876822158851442673029620840482261369497426208176099993500334461976884187903041595951539264111965464774820849603536188945761220485718626461432327497191880858417216502492556122848670444079452809182539144469876181366331943960646378224508161381778729282783976485911046345562271722217817692297411538678621460572420158898217549455474948636317672274364708980215462007325013023705721216266625220053039613516788310130085680167987713860080874414496085961030410411974853698311136710708247974741971708082430169166617707713127633313638154531589133752541683984084786431775066750394884663677721467921121853612236316721888038066106985937023790963186922402591191463458461497417121925501992547479600484600633459818646080115937447037316631953518908792056481072811877724020397440246021297391101349926966489897822336465536512949732934154340689469433738182663778605034749343327029083756180110549346901793394287399056637969763478106955289619876461898507220863458747577535586844687233572491790476548077510392373639618546675333495970891747050103139694380902363404579903070724852963285143088878668807424981635856363393141947625230661525205658963070371420915744678667376833515582244422637175552905493953288236668961533263314935839281282245849325405559410719507137997035637423400973161309864621393795308709471653612565080331578504457300009414139460014745254414038169209933604115965838005063036825456630806282500948802003418002145584175546348018765356776441151647710438436690085370611690503253031468354371335818092924007680509581888880313192299660498665119235533344271599513076908208526629677403102594730225917768201325910777315857844773120758864509339877561872662539383623575762515880562030923121386657807216261161812700375605344622634949838625256665242292344365139697208237825995762610809984937542273567512241092324479307242828029176235375338637087638735181552748211124480024591246405111511149966446261984339005792546353949622888924362325218640252481049059595540836502868935748905420009125338674343134073422651959981448876264483185527327749412287856130622582187812001162857352133808604365252012350790830150596324546828189224759891328716943598514226757325815092498212489905184659072782376396492321190420564384917255643187344162296200604471901611612786080691597050723383179902400106211647477584390237574678913169570118226462177028945711913641268587186863582493271746562706728075136743159750756577475837640633804494482066835217833213332789677638365744674620172883957236721109815401621327006816874023136619483325010446485646460364125317413333237960756729373305212297457933352566168558920043759625134203063834294306097158474095380197411549530010282165055959259459194853348227327155444873521365344729423949559645304788053179455862934189010777934902760221808499185141257165316513745087503140146677425197647620461669311332604538789645165729084386151944311401615142307022471639399010043790686410341623679074185064637682566038955033477348967311334313629428543148876031247313354196709800084526427401420976313695876225859100931112997379360013553352920748298536720427612698476400667669866105345520728721873818067910581629074870107673696521668734487874382771997327186492554248066842383302741069609185500711535489241744407943370423182545606838670242052339330580317306477885933229299655466216870571281806631581075969880379541902867105158968218399861722645652372721592127269985616688430859683960287171538526694147931732893545844953150218593008668911797136649492410539530174013607858891547134085003976803645381111572086129563947096455742708238731268749887309705900533731834616896934170930000086168027800589567415228443663002296526507013856265684358886297585892712289731225045019397539880195992958594667444885279234641037247334135338390259480773955176406741476465801453303755125878391520600273054598058280083415867508782021829802912417977315235385770640677116684521336866501090644399184664729143841522843559577805241786922134390262097035903035025270328397986765487111297164150657689153935090940421630029212623423471285210839542166491175188768489016016350794990872514594428409076951969961803771282792923306313946321509657936648852867185365898542823240463873382817848153020920308831569726734392558336432163206608988845807113627763999664957064813332430080443070692281796296832861316394983415817887142621966549905140449994905132275832902039733890285425751366407428377198389513758460356859331967636542297879597967568283998310181525423666598572785888868064851894597071620346737035168045678974108321020687769153105056687668773293349200238935057443695445160234297945780603067189315767951908958081128270486867856517949494253179898985455846351101662924150670161176221975729255773222299579570269514273134125870360213259374764294767723385539394960803494329630814590799338159431146102374364826090527489260911499781759924252339697286952524166873150092382041212854261361635324913662513786628744172873692777326685338999050914428805931696176825772855927778554889122488088669629022220090710531986727332035012560832761865468606900461217655114103453283127120443522951001679479031335053425355678386919223431249052133279436125690468033045406425931433485989352987882254953185742488103764137541484499829522748902796950898149864690761644389575234356650649798259415250324263255294411659694055989586650761215339929748641052808309887919712372876169729073029530158633809543194018202669104693139303526636283583219629341950220558215628115100827837021914223186157752894430740125120698223625704135116212793447479373750708585344904025189467769147420649139024731524047392237570356833125539744473636977591310167248556425227049855871329918475843821185152491532108660870938947746555890976815009091552453184371101679704394227200606593472786492376559469584717164290257863271834360438706061526799319925178071960601819978896189144132968153273553656553178278789877045484925656831540484336866358934827911537849960146294330178535918922268713560211563806688873602452428615177077111067128514397173946256684077707258589195186572002830268782748806462486258045143333445413308616378682332572962579538006735091060533965232557596824150482795196197494590510082179623656701477056459027478980181006309518889621379037693653372987268128208847887010630825541585042133410149582854277180694946338138816824519034448050492243551000331414292089422576831348019510419539564834283831689946997068936123952993364773605967379563016178031842261826199208163486761966027586644711808760325300708745350853575490894833166708013253482497118067652281580236070823339041428117022941352536003306330261124551686492275338976533327508837308735465914111897983419770812110908047137442356324199743619581423276740560044467491569494557871493554792225417642982230757366515960393956787295208307621299572905646333279790560873601966838068415216005340982287176820543030494829640714377958967789178526513442090147965699695860332176102839832232524209091874975695282502362444942356873501034701874199053002938096986090876149456728711268068719599242400646532771157004612346955067259630156672290905445568896694903638197937468465866534067955971944629775631645824343862403793489804730057570983951582161392144404188942268166553489541432820615539268199333813234143139879087206556441176100519791030792115944641248229869540395866978962963602248076632631118560938170907553225965817149254580950048642819307237586533109347410268460883510176552329792792588642969057722571390829119090719641708538459454433599189629618258137957661952533777093959309375586959791505854695906008160034355707922057284184858559961647715619063376850432936554547474297930822840340104214779400494818065457292244834261048015204893325978936823575947758489390796539861320097773887838900230664965067318652650568283958219625803380702097089887141462158565442623752543139384253212757340745331911629551711879136992703539172350814998662377944284188433457149292710333226630993271591811777984273789750147894332684972051543072375606399877296166872532347099071746405402407398765307649992827255557333971022446852281974406356741544233989522404042548339769553714731599039115199581609495985121037453659944243964558662189512073140201773556781853195745001591386191064089978693283136483900961375710627234780052282421184264275528316128586976015660464318335336103972337460199915388931573028588269160920494884541300922625883777140487965516015543593745110789847180884700960607789076220693684073784963360963425095847082572563368126700642910298222799915761939412305010665619324385291312270883071567471968202186272019484744691477509958737748660296312621123936262684323153391719356913789891966066712770973432280825198475061954062034493330703784267983799417718823847785730492398625585661163352861527957134353145248103916383517055077877222976239792084070887115866239919233193364955741099493754100667968801426502073106663321903729688246980408070541863178851938047827141225654179999425208472883282034768584897255257471819411411100417415667999996419753284032409331190631921047134670233785151816822986613438461795592228922727247929512697119023249639138044043995740500927120818613254294374946808034952740287866386243934171088576574565098594766948921845006405465630078576018633790396114271309657046386091763460387568116961674247700175701209622415995297606038534885700148140313700112802969454316372351125088021191385854262210568994899518301809141719061592636934736495307154175906667880722820148829198820515570776358329567219112203577042495168506188295308898891337742800926055748231190883191031319392993345592313428229082449525800523923120354684095918118037670041104124295206004167497605558227538402785572289944290970792203734798808673500170223540288707487241568779150621465248917332552477018448633360423791742749855343362819513765938627640328174263624814720096570576172733932197137016249943760722325613278742493777785892693303359640162133441364984027113913384274707577695437786011756649108619427071829174412426544459813637859434402043228658975463864348272914836757909061246208432343903919234433434967727735561114213200143944432273203813690857297957363267447789438657748903859180992598862969779258913747052857795461303205433036775220335508550526418524683519492934683524328602941689945753283821030700597142644539014090180299182333664744077884707202162306238560559758221344837729629959883211943413369458344614783596937028326827141048481452882905261664032814940818402437682798083149452046334013147931875223737780641449565756210605303373736314667499714281990742397055859815350366620904650584483582903706278821795170109549763960329104655406069264586302126874027033337628709008636077571723127591619507653913377632919582215602395743429344688712980846121802689710424341709083309910985888888352540859422769177682881207561794396901190756634524170061632008101418475332908113003093109758677073036318425452933453097666152917523663236564742169042280616975156053330599250791768250223646459995703377476108414750188599883026552040683225323910587244894132149204201507636619728900040605927204249627607199929997651568985047882085190980357331157415446555005241314901243989950767377911479714212766615553657000299806435223585594633402915196557447737257745255173684677241148228763726800196358448624260379864986575821308051254867753671804496187001591044738793424304187854617870457854366494428438503041164819266671849752526707365839930254006188659463004425934986421887367466779140102899219351903419847325760225853194848393382061146480703648997867086531405317348151432465185340056408530192899076360160091407670768748649878661447241643842625492285981679108129205218822915194474347041036192619822496886501832878812286552614944872433559864067055348866764216076996015355082328241827071561819631434310929628040525693801721006438745609358563665337540961520993684410900642345559496789925865271737498298037176386441554083399332473281309549009091169442676470996060513667034017441183036622504899102028224104498005306393922465176432819632004447864310710645181829249015547074663013665850277505079676669447092311169507428457926919864654796897698574424712025026199362769049186893853796977482413020560763043389224736757475383147134175467829749624477066540938198182940533952786677289838848282991142392773632457160143733752630480263249421654556576719767519347205464994425160098915085265375080025107560543265537727234223071969679452722466159738660217416890391227225471338259155322845251522669469728173031755253671085191135887654254435790412982410354317442327643432713706542099632157063640609687138452462456633526913012207892078038541203760206341195539453469466949309162079581991165930757419826929877866650365908258531021071701501844136752913848473908192235647086656219503198651985556903747671094714087613531548718159302781883820781394000869999670451740058902929472049512466807390951722430551693010480382781475446419377026942493272433681252024601571534861044060759056332037417883714753521439572777882746386184160872134325498236900483738218263840092510215599762824924148323911002469278925362538480776998752416827751579814453455921809123520162309235618726203561806371374370501246256812488635116226947566896813619087391386116827810422466418488137749163775823530717510933636515920783202850748781773294567957228802702925330393035629609655090811123459904500640983146260011339766003729813388131614498624607384004103873895233467701560476564767743753091353036027730649485481818157985558458713627831537680464822152484180500243604859204248195328836784036387899563193321631831778397529919375524219659608965065537394044608982289650830886050908902496512647211910969229403866059091378266635979448407832676362544382973826316123851271358831895110725809941985723942638965905949827824178092350475995807282287983383670661002041595376456908759360820905304646456054983510903778477908765197460005749378268569622689236564736896640023761421391404088530228530142292402293423918474607289182440158403161965703700511650374832836121305179276792029495844961075787312193123627924907087747049402772076686395128995958103791825552757370199035639855128240294793513430470149853316341488272414708705113722107326378167707957042443525424026587849103230994421850476571047629262215263799117735029455404147197973618939164136467958250810525362210095673087070599535110232822554068808184242461329055034112463682062595644292917574019200970574675178378709497383462000351520235096582205132349518812880974170138280072774927060738429578676545651223280696018735927938422502982394526545661537689095003761204162565183010735370039070291502047537142778943688059173203027118577899176666342571642695371669593318314176864699203932928731478065454996105563585878580355988938253256278427797527748695905829017843531703864196779140765048129809438387688116335995347497834963258404256655648835230230971526389610852632841399355173700557015792433145571339263506491269103287457433680168470883210198318057258996356417499479991411764640878309858738876012622439291525135127431631142409165957985442311940742639141995737008193686324395428889189215907335571177725165886954494464905156957324223604942910611398818787978145692300825681635089337688536087849150976140767272201765263270063040429882985323604100024040182990715058209534866786585491475231039176530439244445196651342514858865935725306187893317329084163403552216474104154352613758218181879127906528210805664458170081884621209532764188236193739371584541654500461376347557269167252476102557802111982212191616769247994681485102211083546869776047065079702326979179446640582545878412351378391598786857658017471735758400554500216991566248934327757053162343985746512112556697615957941655004309278395806436785620176109369534322744203237277829212641072792733153880542657187195231461476085124120711621453707052346098735285253526398555173759886215228325270623317177105764683442071121848969716263292124906141666241887604178683965335208134039931999745848516368676490886859104526807873062160502149585919378227149265333228609685365050398614037995783932359268091077890548555861088592428224225927744773651178182700198138853160730568033657967627178457774291699979193696296290729972681030497096970617503617848728049157145532340248970086518250571841390970899814432108632743076295346483010602917603173983162988558076971443395677290152947924948925730531036288092988571097742034339038942417749608496785311587575244607210626352217999579448328249649817968808777035604906974060975581511209516205013277091078039134611475100496986771957804672823682217588508555121873788238435502397135356476753128488751114558439441307561669080219404705402509256163887305799593571007095421524240238973866144984302696436156975938350358000865252066344823250934289128159468246881311076706480727153921338085490889321744630597885811274425344881319621755074539046922922607786828636587515668094475047862672273570769537148972648601362808015084422632659722114711872171544581877426158697079388695592310355347744844271027727918126541939125547604844318093436796646334042828332733741850629865499460012090566860910949503520844183899163403069633435199713722340451018393656283949057157411991738814206864491885648968163335519506600092884333252480673558417133749617150550934263718940232530354259938439418771874208814554354356164303489103148152057658869444782706449109953352128432519104912469054321738051067941859880544012894251232589909962312324053877398210144640584965597415865952320581449885251037693065497489313506032936074481814998982011182749277815201132404643038340009302231080547259597551216746706659229444385710758293568651598011790199480453582471723450301763989149022144948902160198684151758737919168266109838573845376528041890093375503234876758875765835081680848980488994613463846758358275894500466480260224707959607311234708701901229396384219925088768537111998543312937242948475788361151740833584375331090665942701325803295439815269206810548042155210247965114545433197115305740995493783836932001706564102399396852034151317330925138608298396103448375643485470945637411060456166683280263697605594107860053014854032125282532232725173232493557882265939595083733400950598453008448615493760830772932369780539020694898436522867928580781581080858064953263317305646816091785147125400088072257937135985919602032117698516618138205726664487971456050564764174273684189145067342456756416048290309818979175956744799704418481543956047023378435681267617715798737487316524458821001641061928767152951977309612579504013279951251230446071737653304434889758377502200674146778016973228005456734499425372413845823677596399572285545930783851914039504744136175891007414622681929769694988612865298551788024993319663563824838294192474319235584267635073198580303015343074861824378325227933579938356853781132755653864730024767430672375844555706643322396705837897501940110984584530312039741608149528633651224839511514265139521361994928047761456722848443128565961544973138278595330767369601494158637070362175658670104303586961145791714834458205482295971166547021136277282493540794629070601403720169035778923993263032726072545060040364605028380929610076000676210935821615488096827981804590876990755827971114967485871036597981779005599204619921086218833393864367675453578236336989088161935642182109559511009398375374775546586077865594330622484912789787545081355800095536186322477894557821672858215655834857416920557822343615032535519130694519600528949869404686558645288393239196124043995947790575543519058225812702468257321602699353123762173162563897324757116285960699970829394959814645468124291192894493216757893635877523658708312626129768952214037121333371373636570097496111467954738940216254866841463524981486568437129932566103690320984324524436374578928327453254010137873546087085784915339133018487965021588810929903714350114962119197243727036331890117992931009198972066058919499183852698678005809392309173781954298508516846681299233425946670761777675588620801261412614640886156063703867564612888143788618168840692105737310071471275560282552384610494287319949838014192749437510069479060959762757040742560527920403735132256437205320096902712617878841958243923433165252466820942546627297934824209502732777029535981564982473381806163938715477491975350493217917432066843409206201758084778305188754961244239520118964907047660186063573332139879373467391490808812351345513774071558682223545588457544686343337754031387130262607146224011717060240106522549119864684309641572194492446028281732525366703537230042424986606480531127501954356523225687382635156061797817749036314750495732032582722820879015800370394722078471144085353021626740506650512561669500573990832732506899521269752616060272524728366524467699546935694759472575668558118942585377725768098397685880649644185753871729087162366584295460006457283605313875813863629441043134629953741827762718530615919342612177132010310021145256576690287097455533109073858111289551403927166875224799849874991785025892689021482459578259051864454825308670960541524639164867481996956919637597196303980961058033546132789435981843508697452592000548590030372961683071957622685435364173118174509579933164776907746402740259052553880918629368604586739521133104685547484403817107250663691014557314738282505357057566139391755260695186896492503446866474914652615608550503791394202981994222199473543823178322303684713733024748559429826380406512984891971277312697939942446836813979719308945153130102282071760241132296391228061815709537618452022878633617842610353107341759203978291654370239534309225910850108056559187725277755480027001929461414415376722756825533214173720140747134788443436316759161438722559433049497719612338422266160489643962420532677970414308024116401196808910109206342903802792551569679532441619283486641083828605441536996436593196913777787005936030482022913026514592296134558029718272438419687672437084492636755070563340502683719944935473265265632066274380836995826335167607082354952985615834331195243922970039879106752683149442248758705971197501357168808077088016385784327781815130277868311685891946114301089589218392897133594139288856488545091637259398359742076715707460714975246059863989669574623157776860487972014803576795648458982197028876161231947013209559242144883555057627232344348426426011753223061822303565850804701101189919325257172054996292664129773504285043702622897235852816267563789630203898474355948061217387390668535438453039293129881938833041183423778361478059757505840662254133629335780931947819663929742350390848059320069789917678833968691319748258864747086279971313256137172730816533406139462568550590727545864506864656527768255534297214088338372788201028902932403132421020026106356642443696612083041768693220104899345155973211746630090867120083557242052922510628503029406692705805044006818192273514256346584354811095932073401274969490002544720797360379164669703195033832848355167676058310365452708576554980028239478223137188703965216420784140386320050168755928924424891643210796200313711074626069359189558182399883659153109700423581742946007359612474329057210929097629241041065662092350379244313926890303062203407870584752136844349814006643996828177728832830680829674748510726842285639503119239679399702278280832904039187942701256403173198670548090381729010938267703276181873338233299287354251791214674169684443841609957921734925475411516955036329294606721879838177984886836278290997984302172041753625222996727432571630803326267942700883466799312372277892804907269063435938633448273734946871808806945088824068997261658713437518740712443535899935749505763910550260234884831930109776287518455556142797284284876039387213049090254184884269775140116269376139550458568990473003987622256956952852270270070700223631278275647209189072366145338315064508660157166725030442531345730761424825299347355082009481110740264270328796135455899723876924388109759704444572797225595582148318579221168381920223766601470535503329905663899611395020035590039531431485319997339561100645962955582149616215804551632496152498462549133866615566130574710730660649476125925134739867240429470527139458700571144617743592489199997798539858915545801175707545841985707464441715735287088318155664906711613720524842124067568833334632630939467440591539281243468652741507636710833294679930796012132262362971922889061129439568658906746885822588883989165018835533075233198157903553586855155782065468218332159074291034746956756633924854152236453715003886217890263431378530266227448817999987385332341525005050759944529160103849242964737923144851996764003120426193110183900107455976932457439965196822111570172250000780185200769092799527481957223522490092455102100832943506047090382176234012352784838737727314319812353312167350741624784195463253446152082891223780469229085093862807526773733648916752751088671869074857315117987191127589737172122200697902686270153977033376235391685730235327780805150085259817532955508078778866728156509666916158391127216986993887591126886484854534528983845001720075317880961273477440300452416750323930383670617071013055043805871730675668335337453783036855999377590869513062184655285792359339174191712054179699872561324532665773975697093217056219380046148285749989375231643513474707365882098106057788654165147324898178700946301385079255922260729715226203881943748439143105940959925843344656576817396893261104598701003727543525116377441612272999941018619566051421596941206355131448597195452860809748682548745244590362604731380648393797344681866249700721554710601935002386483893437562276350127925849417326436623720232785535941949304500111524937011476346341575426409557473943069445635423620812122411763735769708677763593019356383644402889363050783332280366747439432486570798950852508727418326835271995157792652719876374997907620843894634721262036078308173814280478785549782897862274724417700301632550133970537241768281532351617690692199702556999620546424372653577547251024031299435538645948314701949401560266849430318378369365546618665662547082586074894839728251558916038553495064513847442211882756298620633135692134350535417532546229427385701851422160479791812391358185702336381354453571127711719432166046614310154741982155492904756210901895720806062349088029040678545667463724177248681190074206557848221929501065966835352086790875855344900927132510735378131123286004105291883550482825682124393180978579666414416419743846503597543167041838521459077943357731496484574214860854886745291314574589315184834205058542721160275207010530288121820442571850407971773519382644415143034000038965083547606952112614351514494096991515178332585172479894740524206100459840736384351138298293353702855164153281846898780435921758197601110371882601157152121989928035754608388740947375220406391233628982806618731953235529204014220009515480880706100745386563972589708030327985512405709675299487752503483811914844763960690239980085887510116129006008076911943810302609494806598476196904805932178521399828659016361397294733342452975784299759023288921228876174536434315837531437849574608874737342587958758219901935389814229423917941515613153979302514641379860895988767541369432304048702855541978092295804469899019290455890684659783833799449251271604941337790706486578589496757599405061755763293475680828922029111549186488201592146177654499211827254988676568962251706361483219514060308448688429474908171412276698952976652846718701072919337792928244353243138285206357061580769259282603222119402768779042924083653232321510235407534232109476053210171678047889604168510719739693991861879463461896797135467867224402905164443964782932669463584918661504011655032137958238846403545337067500146824508939635084079633883393164400215576294876554514962298494573570455639845828653901031203119955863297898599642742416545640221552693117618219340405280497700139581856995045062690832184422098580656036039665052040509265294491631122474122439854552334593973602158488959564576035601123947226002909110232358183270776031819289578931912004228297227192768010578564466733402031860657975998976736300451553441212227464921178419210429930233047545934081486957338855853118789257243599624701958104940834271300659716364375165746371024987053629169290060997979798208147147131128995085184920039864046146530250994914143403583695568842161518200066725398585320356707875344741018213449970395917873975349621147236777151075064434193206709784810139061194681429965659469499803015015050439499165819364340617547120060232533051005685661995398852109699179681030651566276114001239394412740504065600221709854777964424685874863196946189551035133391641195903971893876105442642302464412785966320148479552732274340928634620098405982453385763861519336443209833918195749629505252717041594110329416055200707970044527426550329106801682918215054886572979083065733200566711040393166428946073974276132720699137735888776468407672601645037969090673762491231815694613258421465112430180886283850187273208293049320534883490802257999620893153820434587462062523629681224077557166761470833253074351802801564661524123357726665459689501535120964074098799335251124236839325550804077953890651359848693148572687489949014085300106254036984402433985738212677629454919277281927072710075950541945450379091805163615808362888700153867243945007027498984321855676474032471439236648434111606209310196018250317806835398572583913357133449303614491708665979723338814530921740318117477520325816743389458264967527525203611262736721097645431340238065872011251345146117238016383594726875228176383566558961886132167299893940149412510356465833636887760906588376967418291919203119456469780942498386090416033096376452927942341930023017400543432258546250947435455170968354369756035650199238514737184926705972332775797911738152474353163342411729845894129107504555042885877762737340663304160391808268741726065961598933607786330701992223184666488893045271524055117461202230160366192193936615793786736961581625973005821281128255764679594940281466745760455774706739022001976983182597002938195414927590811337332360588587778716100672583596232604960016058991488934220473616132710075452300484394310989991637221886232625722472307119791823049444351403357447663970836106986071445700692763966397349202921834629764438186018937668805345127770384815690854061403280361502803860949033534893230357925117393530415841133265471290567398884435930822283033032221165929854191965597971848854238871580891403693016171725700155706148369068127422955027934635226450068693430774820746663687476147620022750181551796978266737414595043870588723873389632912139573039946630543402891327746816875466950216141246550370091265917983029038873484176139723433945569356600838016094355613785537468920714544233776467196313846465263157010171323583974874665442363027792854190450156664578818599794789712514811405023776902617289793013080656571631212120791429070542150888983795453659164355123341745987948092769417511490311746055224557854581355867021530900770319556558995997468057416133383616416911400992334155643868362258664428079403362670105226669361924674723713640905428985205188351003692681879974656470525450682683936264069944223117912997333641066781735915971628983274177288723020526098042487577710069881962403729127162845583584784034049243648781833724320371618788149318366321324242424201471879866012908295449020987399595428721390667769827563089167942174016882358765397504203024489864188963690963162701205576819699291549927751425437881294676650832503512671684664484445472404101245280642178327322277604369161028807835887184371005180840179580141083528163516360380534630763891947615018698673670605014755654519125563485474406162027393835035627856152958894681701699940143323110952872124482704720605460258500667040757911141368279069786865871177920435611489299687198880325903495462586850786451560737217153995339107054574208447004899811282899421602122209262449472745405610358209264251267803981905452659443737519428132171370336125910575516989928472946953424298072325629025888362684267844702983631329496605441625386147488283479816732288109784876941323436718833482975132775552098111835661299848568702173449715945581420516760136316810447498709163649431566670016341247315263146646944702228602807118139928158887516372142668321214150923172057318911173288259805252015609004155477759524040891350094036519708487007496783327432335886946312687900985023131720661411321086076048619570635662452304872049297016794578145820090361928067821394589374337776931269876868117124816408491052538842393336908946354092358023108172557634997996943645975444894856647732804498867623578917302150269879645498427712336025239601367889026391276316733486900994658881028631022374955359950171618779405954272032568075099172304060405924475934755878192311507086038643640016697693588444107736870284577037940928349414028221295864075270639353993044472385084396885275777983552083175810709482686545514923467711645118856722380760062998781844878270052720312938847998209719432022757136352039888007560979354968507222173819096427575684664407843849762359541643789860716673486049953642921576909269615170952825421086026688812876213228288701239411121356084998485602261674350348830521151995222130947223118824547392608085441215344210434543110428353361072322446109504754903082384976233787723979857646707148507270115503350791768894285532565557856891411105393768123007641727332335555556958197951616787651611271588023817370581258433764454963932090336308884238313464741325415758340853287016214784675273660353298142198999001039965166398578162708358962481375811285205027468314346218654210028735798453064197217331119032520073461929812872295178982451117703283234759864039562706190854550735807916589710077764022903519770551651463156954288414243755797570968942232887312501544659132356822348563230881862148691752544420425031155171125209326672093524453853285759307857205196311267715965633535956460663812156991761342710503579689346925609775922911355755004495468093959419880769193752888650248971124685916195119118057366233650749218367328395749066939668994863881254658855888383033086427922354597161408639132801696867060967477934970251369670949211851826806837103932976818279349090488099268529794978557333715456812291190828899996496173672758296772254271826422328664001327243273092429509230566221346977560274971311377496402160451869335895994334517013147431671669925355352625191822960685511025521066176939130589930470440130555394785866316843769182864723435324859388779733700023743444052230578338504233697486700501600286637163548072142572742363471659825920005995273502863429413906679266972379873043735393795775874670438709507356712455449660309789611819455417024559219300964059380552294276921735098819503385424390196223556566509598118950849558347583267944137194334777064417430687607287323860319093764674529189218392734056524491250586956517611562069812500393153884581844064908193055138220680810239336308565359538328508151852860249073808881939719741926645634161448426511541316956283525195911244283826288101030847554548973690254035882364831424405950604333637217231136979737662537789832914814676854754118971023646587793294524553660846298717097667145215393593629565084168679388747451776846470197056012062911196593927169428782001047384226912084203747363388386274792663438170746008618165177012473800268910283248614546728946437703394342046484241967025618791648972518386746222304165160001856431299654117598208500563323952416320466755350013353729684917467646319413499223744247224633022021859547406463788211882345939408996899586677663701142952853127079355663237832561966782136657092206028310256539135401190662142923938164112080696172160438099387993003279135193961605459067259657242443886673098839494804050019958699540877610669138906842799356469502459908786561048152626194880291622037728544043107619152330967613456578986649276023103467080783909926275476450002311159881515250166756373957401905770341261342041635904480839076537485827775259666285431629883314207477826120950407760433388366358024308924484034883541028706147339632834646578357966974592587401134634576232160810423976222516895973476817428512737721348884312642986891670696316238734200146948985214230208355107107105025571884627785644037605341548737134057035304716047710677529320079908300857963350589136486977471509376122562844835142793387526367457072220025676912748342237943660613198626760944062105152371984859747379297406177243330777353802543022189439576676950956672798124850084862642588484579677193561466464626014964951463471490061886726013021674810746605411192668918406378835311056304417080835780199922329564347430329597913588943793800972704425821506927979988831446725329768967209243310967877870437254704049693782685353327799678176291518671277541365726683693491087292566065622815915263350446694975679229497645839604031247826096808076324572917963135706380553018179506155893461920055250204212768920472652351959084416370597622758052733539905727377292458984311346620894693568462807708795934236143426183573972841216652601954384817745024429687378704478184580845669859181675745936300712509929945590215797971267979286814183617945293811474383459113049494906254577757396574482504189366105015672239114063379044269327671783572823478402429229040376747003971346834385546406427071026117530091308476127357563889344495780143671978013898265342437760672048730565920693328169737707720506732140005736755344980895540538688878671591124076024028764936109146485632435139228289616920538474220896046608059038230996591893342589079006223704080066997920297981944092771735027012733684682086738310270794793553022082277521544609273562071517195538748966819084680286066268052662617307395592893243276656082055892649228114572078932587782368082793050500307417743535142587643209181854326694069067600791908213420396368953094525633402213073020986458629768965547248652624284611047366575090417717320523237414075658489932392708682167942643268756947351912174769111157754079997199926682888507939039340610310421329646825040770647705217690955724326859664717698638291411537797697600025819272394469201049660042850854700148091808108172665045679671866880646205847880930071167141907849713393914993995255245452094946507843497198103614287781840332205706946395154769469727677477064248646079392351956543663508307025207982465374274256996945775646261198738629434532805415082762099066227743584448627037670924884313967312656356805978534285819844609008250228150510636726914188760397883197731862657293142180732905509353856244448880870515851205561944137370328540547572214634071373693265521086932227094239075429940899442544459068675741143225242616723435219127825854388455951679782993283236427374574525445460529398968062635137335872148508088202055186599580340814883297012537812350567930508188185685057312332575555424196054273583194479764324992288226604355585233496066809055029052163377847463519347497130223294939655104159878397401675166185936051793389503924662052455112688373111207852572442457996232944501683417135951402520951792646811568298203136188273964266233216764415246954875581640843582125850442476706996938037585730039057901105154147795571791693127290959982213641159815952014586136789206666635321839445791129429493727464246482392154779756157336708957618405753220985047485835708917663527278094953542744825251137393829123783351841471827848818093776259467255433420690238375597658467444988572971001533657025938386098378883705596616566122618812454638780740364377558292593401364517385844624554076490296162202292447917789014243272492456246105728329944276796783144819346705517570835029425673263352649065141412102378610932967188631037171704617628931161672590290677122398588365964149245530812072857084100660761685435166635303413828011338196779122899741266552449513483389346361812822564990534115031791411670938307677687742325698034291407998029191076113965307761804076221944515194026040634703567993538832743785881520110804064908851752700820562380205128642184248230026324320559979983469262326656447019563573006795390572441503981642390821362351327177145861912103281123572699330876625534408941512051799027314738681826266444752804067274640857238015503894189125958937399265016877527437697415337481724220377071286644907711626031544171194141083486068995295074447722033627442668184711965636157137724246154560704796508783129001334349111362929755836090601759494537968615068179085076075662127381001179182930761186299116355745026020212756543609511385690948154244767226073400610373342612736080448553121475788902375590577113174550094118597486529627058856391738971595159889870141758696486541853248637794337805069893455538805052331249498418875730464447331444598505524739865399707346233819398008577304356954761698282658938100306024112186656859802072533716561353350992188595601078815219559929848307371141617648399503300378988247903454105325020549556935880161545989189368865721247489636136718628188546447861792435817101125518513178717745043073536450297615072923011083308025515349518692948497169009917303947697333789565022956148778780483665828348275402301923036903858197885343038285582730067215613042476796509973673898639630845953309944673660052789535100775106235405180950620729591214778792662633854287925897759586305806465044845262391335383426270504308670094670362204063397672529913651878423065839667022625805621222107335411618502936356416166557792377663958604946932445508059036179864427557412949830210469698616449313701037027750848601539616658645128535453048155982963829859815455625924865918632881763011014997372069201538698774186216557820878850289708567829701926958276952394082579589346666668839183588155490694368307035327632079349451093653994509720428367306703514419631552887532148221893259671737078127140513347473860809636945635120190184391605573384080516638291488624793513794037131979668758562594829420746324161481962682888498009688756413177902657691055508025432280312585899845828720832573588947631349260624962718322007318135424395364377056481929539957001445543839108784491441936804710651634740311703744824585051857881806866288441707935660426980031632363491203029197537009960106661938962173187622670718263148522844172794334068181031018384175349973496979013526046083898649384170852934692791583455942477874147581862606722466248117722498568622989744043843921840245603609191236989597824880644631955555593083281673460231204066700724877475998063268452732025570156216876628405832688949305051939005049504958701540034854277602462485884666673423859744545671611419843038357063974266667038555609645239035702010736523283527692067722136663585746080761599482575890261556442866496737256920804685117462670246787668603228796511978576164426500255366220799720399986561469155119965918926099875691957219827550950647597861562647423557864501138970419935099764066765571208502958421155914947290752355349927410085129491938559625940326382025249882249214444755882700290036795187052357627644235584183330712046012462993991548419581355125514677093447144330924763732150118612798381856025571631417442644210392318412486156130470981480247338812569605196772694383214901046524099815011833941450600842229131941609950099644961963307661716802799661459649084857174082378057131294396610368772726979043490318967493232166572331903721541461036471884246356801971257097712420455992771894016308075557915318038863852263293491228689445871244071873985131098072996000054029691390863266714179236497562971925021288399097084846804390717631982983862589760312738181027549342610128244583510397246172600271247264410283930603677754398403846237465571177660427479404471102532275260708819152596238810359449121002592156755099903598490287366394653336222785601987852448078120000922672556304311870218783254738688044091883310482551503395062370353459115756948715844081222535466146121336832914177138712079113256329969610586306388145503829307065076425004095978377200913542843287311066940704199932530568316953318544062180960834613197799338171659170654879552114439934636910391325853497773805380142494093450362761658136895003095126105708412344562960132807039487146758901016641151703939321469890302667266058467350596475274805617807867953935510326849129867665654263127329885291927008247087740022137431156586969076065899085477980877564865594130890270456897729741955965501092219356932384978162258751764655242092557409257176954688605190100031608012897289870528610854229739093968150775009659717371460086115220926226085270829883643736243877981277451170822368080610770774136633479557435335472506634409792898991840821815020062629005813678154528485775952733595359748408724500538827410399987019521262331698628280343884972691416958629503620272297488689849003974147161674575114133460273449742355058780721866552587350641253083245738803560851576626591008479072047704536889750719974356650630663167587611347516441890509949530441171998514991673976622942694451662140808774913553673453065182999775820146575308157940816750357256313082689752768694913175166031419627412271620957829974512595073689499764786513098304455391676187931636640409697787311715800412265552886370914062581788469239036439876794389944195963322773315106241711111175895820421382268247158558623159366153128943219165489282119597622766581435967431904693189707095462549848023495501869231129366402929099667008638784004289044208624836617790643020633059339203224343651607943257024658684668977153432807721709879801181485515792816444921354300152529961377236010772921085951314599524616594227164157476323657025718806117063487629262732360083125256996543432189374507796744529154278947127228947044648131474412422116659008100572172330443870087373605331646830292870055572001906994319987064544655062428217271171245920681242948105505040470592410528835740065648454724560748756247634725962019554163080869913086567869678755397008127911768669194968381351509880852095827679294878548181584339038957648028985092572460862530061488862865030657198657936561579559825729918943289477161896205693546728054418563501846263442674857155608884433767767751811195879631684185363912337497661237712587055753677142553545280102361912882466084685673608493413331195799335404233357735889637805318390934442804922703521622308714944360673004231179796828639051719515750520976559027309967099890200513002263326473818452023997691129524606155729336699654182678756146447436938872908878942599227147563262066667329080946986292953431110762432816432736086308641338648646683683340341174172433613790860478805680045975432893327214060803444750328434411461171909670176253984282266864683881706100253649900743173847000861481761643196421460919937381887765482706997939841539389749094610308060895210562372337339552990648545654777111323511505835187239748697076352293343549725610030112158912678328492646452926571161151465300344961441304070786937141792331166624769640876354873990174775371020182114281421448246213204890136655231442441340428775298118356673485565936917962558531536751079806714527966374589942103118815474548075246518531702182499670582009281703471433056490611030296600778862186439586203091262195374593191550111691331559547339411720861353588405204585927360463219827022407154206140331096148629907590810331330659147574953943653870184306530383427904014305982988109686628793960684213401058668136877008625504106696553622430760974869206667440684275559470825940375954543932812646151978601094092210039466239381000248857808215305396412362630356804450233024794334321344188084314692816183923682018691893983933307825793915187659886158526588303130548206474199238611662169190459756562533363184467689507529925867773089781132205545268932341196377415807042979172961849337651669375621514648813841726621715323622710802784181377459609786557245216534926787608800918807075144517955918932074648407619905173558584889133032806350787970523131676769315773731879594907212372637992597153494224165049186095916392980515375415305601083541412442663508841170889542644097702742282321287378185848137739355097493355511406244664368942045355237930229556990256888924724764828569879277717704395843692472400622209413255549432923268062651006560671124877997880399882214586345295917166624816532287411553275264112489665623653627179051708201531002673539588247022352816399724015346412203202579778082731355120501936842815520818554997514915110169914127116084454009076208300514164618825529634620360873716790190582518946838954046826629717486680083930295126077669299240694352257774386318127596795069437001560625056278559143415124133940303277129532531071186174802577223494892925219809743089521223146195766620759235563597266907679866612332910595279610183431069077020322287162520836119564948117529971327497305978355285212857854784428618168525710739979164485073794630194794860109379383640540030350892499489138010893132270306436604092136152251750336475912552993362345087462062522116152134533464059073152732407955939560032748790973869426066361431450934795793642528207605767366822455612779788579850905074655759995233257680197851647322235734446612494779990642933510320292417061814769571050772801917271665422720280245480655682926562444571074844343809247355832405957279281370093179495842802006781667030234830107405474219268605401978802767061773311698549010053252658070039193322183255176221950049560232954318807248709892249330737590455348878518957734282512509676519718567996529101719951017464781430278133357169564223193407571376783460869671224381217307989693831217042049112414515862212057381989260281325336165063327096126811273544576450343862718373919938943796958561167126683833937598558264615427978133179120578291237899892276277256159512584275400014463204457910654686673241405336586191842804226258216882737103215382122900160538955574580481497079514288287427566570758148260548242022106120376883410734370446169531356584731584649952332889740861389260374365455710313573097870305157976741864883330833346830617761996495333234340591686783886452470412755314395794027884216137596849182823286006692891160507611815980980572296761164235609054782755309990228360118255687572387881258582934211212064353513623423335454800037637353922844133746644754648997271532487062343247393949407436784904172725426574267589518279602033436226061843406548292910969473277581063150058025056894921339837057106195538103699251006160450062319589568527763384145338709215687875803212746031128492488714697592389661216541007845166518759992660729902045834562796342043971565244565003933269758416152741868905281033962277286801457027003189627877077513728951374928538916013451181479091212455428351145074766206145020787405527198310649131950843193937940513935608624487120632823309725631065680671593587120399214096663322511910445083216535436219937775858432812272309717649727002825335202360334694516082287284727522818468777375072298833913187683690263824493488856434606147021410159335537083375926119354381437532583680506869265160213196385900424945026077793289829297493102574748519154758212368427556373977810151502777188467396734397418256427158653009213673388007912311266160418917228468906382678717224697734147003033770948629424678362291721791257397858895723049380035859123639968963121613858310464837079637662679929761566821198465934155933916744468862003556896518406189650209957879494750342134510646829418913576240994955771883376474844936148903373387364084487665128579906005691803558021757432822372098296405413984917686142541135780192328432235662201253375699710382103714505361135215808754432588751773149812341597900774841548524687471869828437164277567966121882258983635864612337270873161639587829938155273415802880622289603227447919731513419589488384195292905675291358284702889972904682421781158812544500275773489756610693699383060028442488304085568975649116156938287828620459017159206618355597055735021830926911960506871136379219891638826470030323985599825852973720675968502122325947960921370133154369004734758005266973163662808767546868431544120054451810963963317799632707332700784242615943287198367100185305221100049935858980934727278261324522255474466336523469026079952018829848657929356433410586192063576580213494971238154233326330818249633020386361806074300789362848049457274765559689769047963077258435896097235562688527717695095754854674156318936544434526825222687331658583367174104535186016897390037051140387216074925657286694144634342819342201078799444793152890807044167837208591403807871920204687148954042965778274232772630067548268392572047428956919167600520523215382114088732406797255883699722977039781747786554451339369528046730979198754644054050153559842149017649397089933682368179786182637137747761899242139647546815218023565700846506246212580093382393758939853525532473703072687613186932612577333372902749196950150840481799877283736652550640271936147773259880890814946394227307546211379742525447857306562061623275845663368716041054565558219632284442580016130922925611695217058561742929711699372987985526865736798162230768594917332186376150773517153378053363994725317379046703857552722373827813588564532376608389812022949751795849901416896634521878608358384118931384728325768648734746219535389978008754241505867497801560159311365405520709508035255004812123123771815210729800323101759183786254056596253994854471076202385234083415014218901838963027669086460628899731583050006054166105211261833245630887494237613211173832359910267154433339809030107675192156068609150992975794898470913404847760372533164866332739977457417078705885849890364782505006075652766776667301814279834629978631154724719046381308270269502715524345837771328888401133228561232764247580549141453340043073513682001671030489674079132204173293655886380819902402504247589799061997394494240613938590020437450817126160362783912411472682090856905268374225068910991937677220777687371267701529071296822615843757149665346296154035289806984981990238158813249007282842031664545864518677871817717727792832125269683229766412454967397152787968043476589576126533852457391513438137845005187385915329634140536894844397225508011960792690281162293670434371158371953865778600341946713096653442535523561350392637433355902487780093167585566502026142451755202310518037979241601868165327213490744741879263046379357019572546568707696490256283113949083065981392587716575343290518298830744220931539456267189136509327785275856141886915058431128180621164533834614564998610279908878315999233208349703499009644828973619972608413030501613834375735033502696791991003945764850313988998040534762079799510355628009427119807714138625374689420067112929037940211050993128817678635571212882205845259023298827844889728557676433765513209837208453651972735662945407520786837748259937695085474585377854401518668703212703251083788575535253274224674561655301752946970492860349352376631937758153126911215712505456493662840461315754932343616114386894155191795521160403279413870405973659682877235554936953672492603352744989288822044886844365275158954689558858907183172928912923457744284419272505276847550387027063282979975853882599387906789963676634726367997091137000500451915150705020857447053203113428375303964506837349474651525431616406958839656960477624810076981257623240276563247145586781166535633573841332037563285771114579477361177589109784495974871345499454050089749431237026691600227796215160164431446321556746579869691343020917375379329537363102934825941848515313457700649437390976420858957317742314576728829679067502992231525732869833026341233526316349020649042970821006326488156767632425444687039213337678948960012513626523547256517022255955699862842510886689684710787260016733242215625124292721308055932622130721409368643549968987874303526768849221231834492419076374715747446252159745764663572427527952228915040642776786566115191933191817830567164653048138101066673424591568641744576883906241920186541022526697061538909990725499842854841956681924545197470930614227531512984453091827577151361181673035809321460322584723528118255047060621542622432455144689645726938231665552509598950410934253743085999797137004258858340304497267109629969763233607776743734798788356730102864713845459287916374901454066475193948993522123624743661317478304868846315160365922435767627623446665395897964687905529239027020107572189191382148316268524904958486754329312418264134662722820936532772839766755726728973193812934194305723962072329200718638674667030636460133111116425468025122894305331125098538601201236070449699785210958598753293032771622679823055107676926800022074188490301650050385344759710183016737826819436124165696392522947410357431851765836560341232764339009565118632607917338991262772072135161752222552418296124339628251823286968625444118623812330640345331556016406957472320383651456635574987344116859941616551824960425979839267816131483180902534507164666442670262761185976491324768295272780570322383435150636721770663763740249030465909628596027197972553780014182019981018139812595042348662483440439211364872366629202063939628845314483748901026084036148407312006741562291596696366940836032643341496371209854547525017736696019714617846451555599416726373970858649598779532421583282184109391640528356790706864210780346607571979891481554005420051073009627962347272499701122177816567984491943322263341503385675308244677341045503274285611574553874214000719284301774473142300983657607515512777962810147220530668174203505967941050980466563136377825172470914099255524710368126705138246752117200528494295219748862848985277878356210600487812711440634990881645924451898010442935708329047220160726966046198426077224783107171439093492897379507505647105380291618749188699463530135729350187320668731150173153109129679486254979581512168220757123189190913833835344710236597944808047123388274440350534679995291335460941392728446513911908360762265798398156424638291599904416284527681893532791356747403227351506890987754721815574998488346694622271194343513957275609331877672157428578303301830422251704963297161229683675274898329472315069749788741400219267006720656772921310849357294076359289561828129001109784724328303846519743758573685912309817836030314052823008130266313304139925339921794157647985347081786361137720014085708386394377035291834974037418351162237004017318826939326308750548756645290932656650302439445362272791708003815785132529023651056809625891794240016387149612121694699254423986747262060057131153878388338830780165378838775211593119449359569491793940578848860623959444184972892872308495579260721132977121372388696986360236829162225464710880621094479132399015406678160289346942821550627212605417982917817382489199733829530168266790617780135336504718863397842735335856232791853579779226627038024456968296862549118748685305497857965989184862186237485563935321563048992834865561541540649512210466103765481806025067654913403327386294169117762638138347851183641056999660949202044895026294461684668551060662420883145374012687794781398595777699039877073994170325653193556130005281435994560612616083223589903248956595675275769853245744035607612886079681857619771788765561985237527447223599272020602389167187908147088670683027939897683780233375796837484716792042056118846144350842383697378594825884978259521414316768984959213193894128750695961491932711470358745336608149437546971429195290310193894356371835937491483074230449340295962811166523899581106000938622216226552529766106507452713589497334474072816739263486222629713471555329362444579946508231979087690744585253703457090077440815341678638701480996741240038378085234273977881746910805353305091194433138730408380430675060306862695321245229016675038563185858593174377694941574108105727494443840013991522952924016806674584246966055691076975969873109507845182518576898000939428637121910166980788517105711446695070312737069620047300356753682352058152491868239083974088092648527045816800639153401349373525471509235270441619265721100423458480853223980930819701215864173291305325898717158855168420606503405569968593715915621939545955585570093477116811798359958427981955643563653093890509419646418892434176612177117545737144294027293771776591831074430581515315960948263506336557238614139208130754146107405127413481388906875208965175472864434890201501872018366138417280798827295820189774861263383603711094140868044146381899755144190511520140241876289786882338665288749564740110724599055379921751556478198091849558767527782808038226298180439415639795617256940909295185774478836515944787206826785963694547637062382066962023966206659210812781832191274680814530314217798673533684893808266818969129998351994223212726387715975764285213215158837171464854288124231224684028390561577968199897855625102710706283793994319073579797536228737199478452103831686685214208220192667231558101173724423756091514893863436665265794260371682892815806931590571523794802566191268708876475069508501113702578802333818019030210029759755926818216359535070641885719005949744467974174202521309472461919502772132372470257029616316814647621846436446517995358777590480917246955673967945537349710322193694559627789377919383406972537884155020629583874830961954204615469902226843474617677113197374866000879354436073024336632808653684733506687074089001847030676982147531337315428622151551318140954149797246706763436976964583092867952120199414066540432666834408196869186229176544103649208078572924233887550618098365912226537972884111201306910185760304983295326942141884259428662146952768806320825719648671342246985264194190222362411863391302841718447248227557233799697074820024375803717921807342020805369357406187656641696077391209098134947021207251972136996423442093054784650692374464904208887326302261563579196063092369916027823649300034497471237794559512408582397099465702753667598133047775050505366345747155165583727731007857817871530316132768489253576078462114788603518040297656960584867175676366593087480160999279507871789131042038494789432860847970515042833265245718864231983999328563422686078834437453092728931460925442990607871117367669598496330621775148848993377878678597852652805705486612173792135521247023953256081906788528038324229680755447174377489501430231501469612254948953383627569448693046741980229225550650874297727580760951068798271091938371422909682687285963219428367272424774439090600368048527845438548199558287433441890955230992659295884828977719675054392057716689385523977360925820906934305789867423572953120514850903846524931400689961737317358162222944554161493578714775062703761924980363844001609136117137295576618089263864679402793656703853057799129885739447837576390926794433365054967707422859638087218703995827147580004402224042140033035903609605480047188473046782868077409898322252624531680320340844351093743194993802990812417921108954239270965425821958485866799241157884478152195574983222583356742267989600980320093548651085494676767134053103434998643497580002152868358357213659782084357326046612605704644092005206437488086840419995854086974773160175053902530649036204494584764408820400538605715251822177935180194147116600865329482810600219159446927834603798292688186777848837827131481606681284808747904302342003771308964647817855994618375106206884413586284506303464419139428937623547427775867690146782289070060926832522503246399533375667289976602542465979519632609027426151574818652781929779836811013313396516257933184194070269649889513869239612612753695920602296900874208347208408331884158268380193833589732243351364122443211749794047668241678096352035664154332541509645019779105414609437498159904457928380288801335624818140726114232759728948241418870259574549342547227469899768771623160993228850420280708381008140918873526333183584207407484465733978384298053471060023742199872117626833349092090738653379590749280892830301072075504724508511833346763047598206617899980044627448033701965550213204413964236745069537087816973799693790616378482011697962707212703584804794885806583089632312886734029638482411287659521853624112569697491990574782803262998612317247930503236377058456987857745316103866706755584406824089105118184290258032985140961573315387563114385477921529836638382158713588240820127783840973623264758443526302816647560799932214839271563212499908370989309463295598599287284335212524274334943790238249494457851649361270326423390945448086200283535262617529818355252978804650281353991128471612811534144603897031654677395258765383844457461103515616418092733462541422179033107147203105992949538959584368857734894952259821038315964206232730714837166917989674445418418903725112728353005929827393747375710992776523563703606473487247848396842037423097589988743878765428415935659735883450609361299244925874676915428045981328158258729991103007806315924817220522132060107714923366010031827100667272664889495509423368979354810557964237715449541371774079951775014666954655741008015579341795983013187154617138382203332872631369978080937562816985753529253902365681143586553982842832417000516419900517643835120057569334304218029315236854114240598680573897377172090328164862383954980500843602353585825546188559424426129289214341478982670941767604522251349298729974353338206276224063310048837745273811887225818199822194282936766660000403799148700185686745544123195735187123793059951482159548677010540478202585390833356406182622252080286486668097631561071376418909023606039541245535703806675356765247266803675176738455646966935960226342580015557208962384036477132142966921934724207987296298616757967460829597127485706790346703915786585811127382574325190397829954457674305752992830286341862425450224962419791639827349043594113958984043489575783324648221652497253318119305558561405031050765485899155255426528862875288955457736787420297703784684756366424947670848543073541328403616349134710744683298589809511102012425448846430712271748865869643672237512574076638075779685938518232158037901388513245670422527853876610135195682865233946040200356733860252055134753079007468945261436163812466020943396881829985725346543552854046361041312149937692163026148315182346942096279115494171946607206655284400443565753266414389342772209055751842369120803473798867079692283986937508881614607383824642000815393674001886257307369534997308367252810149430436456349752135453195195003507648237036184538497563616339744294309886387198988081880867474958317602229846725019591837178700154647194377440245879644193433052737786174502452497071499070005187269292834587178630917484387855063975477813979761471029748052589306922166622252353734490113539862660281419264762937097680131872041406668762554595422292493849462711775501758620213788767600298051574112378095519278181590820663636540356868332445566200951604633752256882558545829200193063815338736565179457437025887562647321077322764662315226993795825381625074119359925754347032075189639279292162309129902590445512172093189661799346949541502186833770152207591130088868902385799152826398678246546088746278526226814247331885885724166512619590003292244047284089619602649237730727930328698350719950917336222069042662113793573787896339821927111179243751868381757621347292273048411090528931273975665464401599108920563595395506226849034817783401638880747758591060473586645607299400942000631204356230811649814551496555130058546117355240521671556660413334758759879204455921756775632837672276901154164921122464223603954033684550113426542474489895459967920364424296652482735068799649501574046214825111167401638128823705492676679728005746329061945617997309444872374670630628346193769263728437102506294302398387471804112779445151821086400015584757912846401287399509776297708262263458825052078183457605053081571276816461601267456151310391071769738455787322413300300055347195116690125811352080156303730469080930979273536585649135747113509044127590764902991938820082621739395928612333657297066464102705878385513189346579626859330479560260115450359677101400579933368890040220753848251399308637163433660079237124064576176500364106122054356886881774062530570060230189829110915340711775171244237036436371589022011623171026356501302439912154042701273039166043485289217176780054435379602681447698747940557159937783563996621006692741927146810896204073611163472025898624647440819612040336875208970108806335428443692521801742512119678569911058334944999168309449469847078063675466677678253837230405284892911730548029893106132822852430139744212784010822979922563749918616190953950922923524038726563349624474469034805751356594650462503096250111859963630240365418782445707402458948806050741683907150580324241837558626796044894031184207156184266389930059683519608809915500540819116094261561779964945557389362335095602169384530294074153542201700885059341080215377441689697655239000700113109469280003444356063607661310302728738927422665249899098159012376515704327731921850284488111933201103571057194443871218352322554867726440866734045441353674039901046417928811413277329570523323399878009160267002892904670034550632113551822596454563655802704621531470603214767803873454420398877573153641972943746586782763362311198646746083171624959380516317910160217431600363721351355065556811627671648322879623900371433163480958689243847116904830789651005911049650159928314383120189325251667689558973105180207091561282127947857682315030996548701378014203423508621889445113091741552012125037797657263051175884455791816612431914793499879371889746676777827243329227024826454802849998567554945269468703275037839400366514426856820813090209490578996221008140773669655662797895875993816037392940818983260231197906051459780384494121855073472344404641363331714829781976698669655140051818454197633105563504488497134223603391300589797173467823734723292305173885050046360256819980627282581124555915860150184390904098641809717100754618847739349112735711271075330950790361979461708733446648052417888060677311064558841428743120553686450754131237892050164182455985291702855298234917568151981749535650404537358800409736931002101619740994088572336813989068523058021522578307985844449884900267221549288886129250288528135271737803182076280866581987021339186121133602461873626491285983857042460547885994420824018091973627117515404746563411804862886439875110526018600763208664032080058809812466828727691582888514535559929721451343188177166455645026663362751571422612127028290235870314678624273023359989513383310690803679122897592232090053533983610528084879743470505105124297994696958773290081207079728796535839232426576733921443804703617065295956729932344168693092018662571582035045922274601133491784768678310636302367243553709325626949823072618631310910501643206126742460867916703779309406696071354477720412401713871525414787133745660229142745368281009292055889007950848372326787186595562128376549304312274644597738111563966740927499199030967831570443792739641666751097892640931174682418788465392879439142807191372281945062111996049420141675675141552265693285969399005410111647767529256494404287958357100368450907034580190874999930927342332379066474107462898117101040277883382145098316061371850584279038953949613459869455343321733883804422922186848247101171485158347106099757869761968160124373302306844692710557893261660012959934985974917184503344610562408400109524903112915131020735366066991425097441671089180442792638502557662206256643470568888120913431296547816198453967515482108102441606244493185873512142860108581558715194193976552610624780925408142475964662701919437855071869834968769265751713501764020035993835301783027817671022024492886556546201055956741577115904728583016542256142005482685137191627689825272660007703368359267689271174661458864432562954417051216860837357165976102782388486067014463296368213637303317464871763201427880067424934856844572688678255255509250061546975828854921081222247668229027751168223695025439873245618612099967380501457521453467701080259152981604212231163287602645784892088144425417823517877294636849168637871033559880293528797513166009650345021350087861481652756934254915758254478587897790042101592801135480971581549325386490211513898577566392705820047833081031935861720959285030983719779563846649873345549013365660629589933126670354255179585895342556852221670572063731668209322415546565287062082026853326008665800583966090695049703022545349369418434799181485403175216153188936016989829712382727329618815135404187049273485262656664081364863788716802997434199218404526700361558020387500409637218865537661056462525859676231120914555806149237446224865590525941467834123013364881208645131781450546417941645672385775090452177054997583323609161824686637311995974256373924319368360663346878883664893997708709923975176942932704315716340505835198994772125986124659567580313640200779332879786511301194767901228493345593727454467773069942456260202388754930902233573983039664285659923462394343075435576614858518612844661731439799759776844709297927738276470935627949450937574975809402297195543701438592212160580810042397438533045434671191438712266270914012615384462773661088651827155664020489973871853842797408717803985878574872168926362934079370551601837140508771496281607873833623355597883713608096663152189322875105227403710184125482971285689541641949279438506394548386171545286329870074344746461465034144602561936493892557193423209623857284093622072055176469825304006432287560380697731469996601018610184090834745280892809833912909149258303651173029967654739251518450277244844953768047638864019063487296774799021248561273166399844273618623088551731823996788171581832063096996485147295737236946479442548250144837278643035426699644315398152771686798446857777731767242149930635976518135953927680687103230458025191560364641845527228861482514597409299719945291059983347241041854202720851360543073574876227384079200167634661510906147191081330087692439890505428382858717459600200884576448251903137554808601794034109441898837265231940718313705379983523443759548981321534240842874824428098988804719710545292339984765517177514410963503314438415742836080790134130163961579445590873662789091442759845229763054393408666782643140163757170561881345065363728887368457730018975435386415363938173762901822963330494418919406597305753851213398627564624984703279184151114912113525010468511900896117079021888918806248825384228364119065587480883812073123231413442333531444336096562719210824764039272060888862628525885199283013330589057652728295714261949791649958943631773247495809598414916399608724055940589740951851845370108423911078235447953897722079752261759973799318017660258416783458521545313578584209699130699520991878609886124440106074119863744715309935103342861637568094850359275704744265896795661933828768847466738762703577987555965494014662899892099869716485407230339888393676110133037840451130783799704331160533262199544257703071039684397527969197308128025112622360077754000513085974983046454049513097048034261383540913445405641341014621937160565528044484008804530396494929738268650227452822994845774673433786755028009975605100915288666465879026257768957124187931583948729738877148353842481293119168316060135430299784836863527731202903029710778302774738958134651942756160667428436070204002387686104592077696567626787819706560612033973047229654813734461913219885892321867439123224152577419290782257091414018156957284573833622918850794868329493305335931935720916763645955813679923869635567492986511324827139460731628550124132311737264877398296514923426741322472886328460210413669666442677281041495943027672387634286066448079048426771915985645126086187040257274427745143079017361515617731515750059883996401418804973069975506691012924075303749581557846276831148373516100826421056868786356840858920119268252437039035251766690092384082646752617092602697104070471481531020573979976815791829812892353041464919875936156322124516827461722779681573302532557352230229683398277994160348264985693826397360590562321392948550742764853294267105896994589264214411960008453533311450406865373131957148434854150415172347068715966588934687947761605065252053255188779427620006779291742862951480363937155624921492192899450678409720543460019562984744096748624653637113020873814175483338166165615185111911346847323655382485319878581818145010538694131580428941053108502625828157123111145551238854904453479867002570776217413802918927623452389391402805293096864556020870747502963056856668723977499859113562083485942647022385403313966555122940520677229821077169887490683123218656678892534843739289398243039270631046016785592875306017870222133068112991425648726649716803285494390895401159821493770170327676209298763615294761022963864003909946651742860527160651172140132509592705592948397361299817981025671385331771066750331317827873251215013278377486502070331355062275581304810800294605171798864186469383014272229157943503979917780164905282771302956245709102784944459005025001264756232514016120398203255027526969519670742351684211910982090147345534524738516054502034488652611948457946739103249460175460659491334735648784812681880187073525918380839036790727219871365126911287379537715995274134266740529860582672777608419974697064196590299595629560556000221763788281809646584242944311604341015403241618371124118334133690860407381821867859296600601526097920430269051432225681436574696554200716104926071055162136298793005559121326652543344723751548317961256407867774243070700876622029181406550213601916638438599988612327515290352987034953210752896906114040165980218828037680534871490208308719178047753136085841410659675196043240179858915353244342336299100339036772618991404668102761485787215430327575243593205031171651703430242737608232710098962149506384969100290257741671365850448982075513534469441941851991214566815068435730758765412713166542356681222737222333875877673936228746034106368156518664932281342304242040017305391395804503405968044825751340555490464163357843816058868602279917915156776991848385745819789813620129705387867266068895188507220074426102970737128356942669779338208780912705267402281903448878106828049595910794308881004695618358720934323233044096976123771968962982119916878709833961134526201769594003458673833978234147321913824997499140658967734474340283580315374798489967619249699851822401768193052100224551085786038469056876636412890897515543665065616506192218185586063952563520434789459161679812323605749683748234389055596433504292754772607193219830825380715538852177309242994131441902635580211053579886653626415101464607119855982928954907551481369440936071764942629103403817182161439604176985281732820882103690612597704683140598765898142685317003106627425740828091023311681597595865485617816146064344765193028717343009218001005873954834544037627646013824276340532946558088847737466836256169083430972700699748178242457419426260777097989142290035008433211923977359095594574681566469478110101036963569468678903093375711027620866070878210655553779260881641337529391559615391062381538131481317662760323198880497921677961104910238832275063964710076965247441460982262594476729758448101388084101452159329887353851807306981009460126167868930860243784986072082802669244510981539169597360182132879440792230675841298484903656303436908701425831419899105413985226930754669501999027720119934380998096571948285919876724145591715959557500060243914734649999094962280732089018531774166215707333892838863916441375939741779799619064527740965797692825365348782886469722536557545252280316884710392694299440177441505654108392481853809722462655146890300020782127549450527915436981754966618751347831918657412558355397407737334160156114452815017161751179996399406119110086304704795713409531582791149697550614252596618790194047452875733438892990800297698778930869873399027324722936187651932972809463921588010581209173303560696088255232179700576000415904488179392298445358037974607129470760820065151683365645124128112940020791146082742431095203360028505785103178129690111967320860994900367426065788332367599890317467841882737621128226150437357826128239235832602350621502538812050380876107577923411020066388359646169318157504286066212124025308127579700257872538449057874024076775176118282802205700768033173143733222497208953222317699148309229185252467490518771658719283391451272224391076880381467647768256051991624289946664158685700335897100581727461170013131727201526453957506701723887331443852719496997537245850451851121245323760092430472399543989332763258474199660212612529805661849768230504120572683027889590129847903701012363477732672039081071163930328926896985898027604285309812579195732408053145359995068028164763767861620499087220505717926326447013802103274475785095981537692794373539955990692011086845727615873747414978132199221009794636168368837698006801932672463563313936198022844660290825749708876116126193917988989141472036055993690883893058053593693391145031666583767906825338101549463368505270216052865898969422570963534549240879532449834501523023103683349308340823516829151896416671575047629019534676550504543318915726570514987763841490791267283803179053794039065513432425793133041324948076088104697312495453454578562643292457539754436311066043652894034438429341310299218563861969039536229361901016399352853501057299327718394468786490277192411969477667967432169166174018371906560463900076521196114835072075559291017853787705695420746007253475463298759180083020271502977497891528398945332554071951666575323092649513942114255404511537786456966234680050010557665686222565597532000694853643862230379848569368223874903195490049166578339743669860918339199872371947258845288725401284645056630547236271099264278570245829223730422001039892514376074181197679980049611584889031365744048147277693497933519690791241286804950501774453583056740426732857897572640251681129144017289388939060078622033980666196507858085348249079437151059318692320640496738656353128130407910722221357665482187805198585300198832071946026351214279937006940708565595872468136554341671216007026774829236204014529850560212244185483378259554164191001106984416061119361341572843855737682243702736802105490498596516582972944555191824151604065511839707202720208464020439307298630013905543486080572720871181258779384498490437052921037497010016639981519494762949998642849373675253631752188331308710888079788392417704627889360773769147013802057889504947811588756399045026857550561741605589946250346009210210935213094767593435082242287365273888374232113471060109204939561731748853780227314662884160388678815342375391560037740786683286939848348080670719236001585719202923111341735102217455941199598354445613756191796311070401804744803809438397548267445519775059366593295007869513983479298733887810177945608175447381355918082998124982315003735066265433776452183166172959235665505036298871193560120416793837252007715931419035192724580169449393893968861290001191170558851515798078321975863643962234115591247845187082904022020705526888567677675720843301962157900852947127982339707670466783431019043137939095674184931794875599199055140961968939225573319387182240165404389424297616591282596064556576789626950067545766105749703494720985496417221922641518102798911059033065391546659670220214954542925225680119973223318629930128897726005488830518019073656178487244896155732164825745475381614346708401825711363753394201684005114429600303082324276272440249343956105593933073782790939544010805851085381144126655161542809528681170509607828910789971952998934216779462002016998984965144055336949093144156637478982789278074171170977983171522522769101762906375367829868692728058988150048230697907349216189955367079070334793754336049453072079648770163350386612477167988940461720890124337095817160070941224936215496495754923913389052137928481325600654070872192952041174511465783621081106242854180781661949418458010948482260635786400953180380553175259088246744194408371697512638377222189990351660818503784010369641914891107162792024978840785035770140561634787422640000635581746899577459816171765424735821336343905574633670041826313143611418160332966762967600167994205533403640351816660549908972163789101933149352978816209395419682065819064283642662413237059039256804645463665882027057632649182915871363604687363845054497488839362556344690258479973397243782686679200489425440222386948917200466558257328802332499435398108946466293862106782615852789957371136482549194966699900465148330478673621389610739799157349933726567917382050679489033578517034801568487119057331503073236481575437192770782678884988301848646539821183228847745990682339746215612585382662372283196986025204337862773557515550720101605978712174650697369997748850582368618239740596282389906171845816823966993940423403802715214934164580665060942551663306049310716719733083603311809122267282616536491778154547133361395136935789707903812910081720867497056696396275052837274397916287648645576810769790438777885368984373003601431294866492623107727490370595621425875142932668782847880787628478186245956781686625830268203644597885098295089252594417211353558594114239951535124148861005811481337144762057489372241692219063913137828116201787876086438886050658708324086986394651945116888379527746353597780059964225118812756016017915902247521397691067986320928338406008610218467139811866120510377179678586471588911919780820651104987209273293674446645552278333155612798465198834836197608015831317906745512410020867752382206554614559397489786921632321555311929060258852766336700281085004036776020246255778526526697703400695921577615647642596347433564716021855127675264892216759980154725911835301779011021484702267325079585252754842316261589296749128014980057541492894372407464438111610968912792553348665043947776470166897046624970217334733680794773210861934434226421608580130350246371110894166810265036737521403282434293369193737263789168983387513755579102654529523137287857195672725035232725011490885240111221231522395356681417563608279688942019932324527491150005680661906710073056211312564018295049933428178361120044138708304541177799082829852391031652175532217390838633772407026085160186509754722845119753912039762759601990538382949498226841606942370746852851185966687687972298646027571845029912469206489946948977483050501351974592227789428049458889362661755755850166849113803454065533840450925477956483685314132206728052953221775767997329750000772090302585104432463993406745109433124358732359862858793613228624008278150765608155394815807462635927191062286452912195489912738899347689840630693501530580839565139440243232506662242987659239682694103113083415119675553613783985422117921941144956191653884918597957076432673697459359381066877511045939056158759634966179567758163129073143952002117162416023638780963299013324703785938655291405189485402021747743494118074693780365326131399462089455574906039769709495500802649687908339222077306303315271994479489978198182895663978726235996505384508402261607128870691917955348341272915563450783929095549621763780941447603926762029912097978526101261615871270753558678860701332293741480098053490197876511723501392603202828319381375304617438618548707315228789604380162602151932172781250101536609553959394826629785009647214769630414209285608367553697145767446582513779268930034981876730953665615409401818121381451571893485211413763239747591249359704551181113512626385218226841422290576167233622174163859695942855584152660325817356968734787152825385468661708317156789798692079668579385203867327936313110970175090915363971577478546692389841880008598498493115913728360813414373935984087726813881576316452990400331700614355158713210484908604086309955458293249851269415089658896620196441030335698575787971913718747479419890239855764454275317591278218206791940095979448898021655199474910767021949659610071343068360588439806250293333929180504378749584578395597521918499399156656842076444015770263734973607980438943732337103577946294959569752864241690766716259743117028013043352721392098959101629315031440616760330448713108889303292520953246042438715807137411333349675218946784204352012005101715588810140727903370901390608296232573654349022515857159734383964325496828242539277712422357476365147462686304216003673739057280974151802633253647788062977836503169624788766304946589041398145368349648376763797240301315465398808417396936142586717938191404814312622118490104771070020651363401986558245954915189360886020775433744258793923503783385025011677270527206099193802611795015938187100439454786426117842514617256027238047632869979661131161471745987885542037896030485119369471921087749508553862899585037777990447987976819174494142900098035975024431445721638798732593334748433045739408125512479377208382988604655248714452068120314432872021824917133324123894130322035955727805144049560581365140986160079051007464455743265393945391647302445540904493591899500930070180617233371679820223173261954865526065376596240693939127964089260841611488033064649940540746459731482403965686343215931299439370778216002709558712592639380626530906372271590302144540827890353670167098152389832704238400163481012749869965938331877195079369730835694367288565061102509453520470419059542468201989827961069973226213662816736312298905624737776292375576101165400655938523727391506690645767946392058971652286497743450228414035088808309344618168366673715725141638260562684009201088413783889207601230008640272331058740377923680777236337609996334549142295140263407406950003571920163554103905240352907273269823891464585498060712197168339517746845727327057830016504343852267328906604188841138250834136137996198101697052736772471979593261177622344539819532047244073394552129375484996462128287798947592635564711248098447886354857684404007964540865343117844698666996315507153553467533182789421749052954084700236515593719130070765320610164624284605754459136274080249442643024742038723113681403501164916738803397962812882370862631477737109509252116696677284000566965235533123572734471225058493342100065438046715335152491823178461651025808818016446049994058848908523540861518389404360719340671292367260694480645999780777249220902903862440744586970142059022198880684609651517094823060009646570143644076680663727968756940713515678279906490790632772090445245032485757928070822520326239683354851586069314597838528361694563361863149568957512520542758340843376543877357558113323322445874169130446233328853040341681853276507962953325671968030466262226939292423381761474062176943813018164468362506028878688263884862284407686498705054382292580658487040403556257325674952011143193754775407709196207953718148825061663069254831888871623685251554848108075745353475665069108998902579006747116536104463548486258453296011166055248123665813348443402303383876694730853114682295290092852033970729724784595032639730470969287727556674107879212706769691471916296467784842643755418575698510816587182715147495503615650037132073805452127386073713493283299506794838104667216961316674556498386410665538519571147797989780405313153130469535595601250122307301351228235903089741315318724606576765069273120754053562280539695667094045543310016992009340160301510967007087033089628658695481117116447222429564592624702284383736316827618263814545273819011571508952201669555895255462206792074276777692308115226475110682443391341650025240406933025859894563392703641944075397812008218213585045547352157480438705096537744614781134687165655588835197279213185045506835539430760503690093629623878364086670129443989385444418785088158837508762900011444690128881295585567752375216598684934324220643331265915748872953995338622517538068215345051124474409469110451163239958515057551231258294012367477151579026785466343783299768437518167132466395464302078876838451413313112004383627209472896677974394888903403933393477149165560987844062612358122351295492562595858319163624484491123953657658710507880739670881097669121051336720210884909249834814108085147197931198325601491340711816926537717669488632567738508113099293924279731126967745834906089590146797112197545328687949100384969406070056456723771053491890644506528029557447570185785935333025343731414420530358189472502565974199223900855033384792966237076723346362903759950087543075025796397415020398849590375857682910017344100301639017484856330642201175201778857984274579591250260727814703573118803108254072233705618403981464308667013264139910735002441887725563513180201251858081489754097369730814873054088717373474428409192916434244021024496426392873573982403810584200373458695310703279798502293094662680690179272417870980625238297549267427174010931339084400603177150398839717565171566425066140863519754573459747328546035257708163790805387315806922805330698661071761704723189417223854132675676864108506936197728508808999120593229478701723659957911254740490230421735611643954893538440386619667832273836309911100528583707824962506145518825693851635763993030755907074091779176896009094216626863994593098716651875276280612167765599179102906097798876029113129385895535018018282822842512717674142327943772490834468421570946790104913429397381565935133360706191251839663489878904947087264413445808102413965253897144390891777522524117802201688749824301623732901654238958880298757500628310445539487277012493083152494979747126764811041792369032564979086214759140723385699856848993207228126831503709899193130760222768091775960194196631360653375426514541707897265642169499127767201935651871297423897420077422706008183314686892660294098085839553452981326433742948397137157826634893888175852859964321524684920221705042364386297153170378612025782854723968550109472648686527339361327053170918496084286797306300436165421346267661010170035987579790699862232054880264185324862925109616879659807695389765453614545744554001652239142481489297293814279062558859701223872834890240573855246423443911993450272065771715210499127908992116992426409704094162072318039496941688985426561530328072246825542458111142700957323271901559885378957557116192459631233900138923872721527861242038168148964678214166675876691828545852443941373067714640373433094041364476929357832575675472246049237725453066312261405501756381159994319702788365614699745356186625199217747587896680220466677625977438338995660390403628298614827021386190536066366845791514514912966241491896900808153987865583853781157034266034430482255013197866047676271115191413296063961296795675148556053596642717648733877548421668073267934468273745356610801508605743399198621529578787611185592447235271316900900727602292778572040739492840810280038898566540215556333756222914589826405817184880903521959232298455919169463929579675300915498710901410398873834792493628931057971150462061769010546893013669125649607645519105336273179156006459648274765480572318894713984109860130286486656162666295762500981783944574352039379491631861623245084104361645553981702333968280754081606767892350510276470520409956971481930783215993225562257913369017793709375425041782576570705962239705424120671641874246415575661781751832110091846264871776509119033457230778731788048493776544253945247149424091479337073513487876314576985100249674982967257183895783784649478639854402312145464070231609321036055594619547608318410781549758552449473221438932052337349758294772936978542447331921658533831755522494658487593974612031368176924912879005517840370751610615086328433445673849566589150349424052007897413832212149246717980852846342868204470275783698828657304473701798754988339182164436320438360275261130900446100374779902794907612459938112405161919960596513900779096342935831190343056243567157340950561636287482782058761548998813622840063195111952017808096749067049765894282031932459132425596171141643166944161801552406618863311739950687964377815538097222929745986867436434377244602250082170131493699181402454209157676839550131681810740342830411268652549868032645793231845029509774520138980553581941410191319848338679855548199401716615848836118148504918646756391772863305837466512519099517627862182217783739216042843812365855035987768316798876917667864037696003396728064045734525975201932854039038432784751855614753102263637335938463979994511977345685665446742838958191103508750244754207501175472655793430406416448164000185489617235736987650020914631244006805066561821132029336859567547226664660246868542008039260740566298299662282788667330645065503288416293882956258875540969468070706581219805085789240566782073019132006706036421683649165256313537762548308959484205360987229555827524593150094334190090781546711225727107985212227375561583261030239205316792788614118329822645975576534045423461049029572239587533119579619502289460503083569740319848247937503897398279538992068971891296270970268160179994882368515441024906345037933046385059805006893688509215960924934546170186966470225326193881930168212264843687779523961813687773501783987601428797208483664107732876428869253587146978397261888103384503337118151711484715753572829111377136313197782120245684609697774921963796847374969109456442146235274675272612853018007895735430327535505890027607241710824277977227327359006266638666960135223025608509729963153757824337925071621720744063331379638751714439266238114553939004388678518424717587537903066366609326888319312103232072351409070336054165750822090603372016681138850314684644519169504365588661521259506938284344581528708712282931407275559336996812109903515910164212560711075765634430635117056731674352895819475495216114251931100258904134528900750775831818122670748616937051137474051447945461979530174760061067934534837739405521359299881834654586798258758604317340405546011823364935533063590832243916668061210292859293099627572450312748943909642963320873077467150077733008339343158859637012443376957769454826077160976708615481666794238910350609046146044130396871368948867998350878040680643816217724063479178119162006295777701399370934394432172497221823195212537941326027533674568558608844105908511230270606553796894861190333431182933910876196185654145709689387436957061234280197733557389624076816315844335848770733607207064012636724168412550983009513819576886151246486601910441900040538733356712015287826261145314440019490501156417180146235530033460802176758915614799503714673327458150272811272118264669225554441318839859509334196239859455611849476747865322071492014140435873483891207105258163644906920398813879272899285398846067946999733862878432225100374328066659264199306084693616756774847179955538224978574655672505567489493096000388111650259900059937401738666047062621238852848170109467101387683522002537004909446671047557900086274869986075801005598973977527485320741834661939937899976107539930251144261568920485519723078407582278483831235864781682863472397050703377015510803721686394150717589120252352003093644538161000890881305020391693411591082327549299699784135448332296718754241822465520037962279043106977024167654829394976164049500283098389394260224304616904843558047477224038717866934915392885786302298924314368417304703015701090230606750370244720033264134872856010032197236565201590949293414826212299982317332073064879601203797276473155636303760929383734234682091833203420880375831996892409927493635290735649847239275179648356460381131807445271846223458597944972284318052740625000578442004830052382387510848554266486618405878804641206810359198983960987271311506410818454904555799276094354218400671764535486151052824756829626859818060293772829879244252943870854120731025294049832789179127749003152175521488252603471416018195384541767118062521836875819415407036768156157661817204779986923314640336138033465204018426158039026418253618572246844860612887368699927202741626806376662112069290346196954581136434474159871401892116604662265826615905420697639435931236620455287560342165003473601194342256149140320157941711851715427563965172568645384670954524837130594898582559745277564378372093903737606448757805380896666613991839630554346351531548185886779262912725363426288985256854464698144974618924149586366367198140065068588860860224267337988127687969406497029915452452721325754281953249173115066208586652077490952965100753404049227356548282957025690629358881690414651069717772420955446130258543817863048508060589906373809054306950261384242227053753545985909932669673321651519481725345327473336027447258527245394785787049054847586331157183663323591323475882593406415210390728719363267963759284733131612339781549856507745957426301925013613442181778657326845949803925741969699998764598249567094095595490645143192997532969902929018113346849189397316733740473761021534979028013172233791279986391471010573645808824964037793669144260225224329182203596947965229632415046259303763664328408656160231216109902717797940482442374377242175453274369030749262617258880652233261410603381653209323202669910870847586819856399049857501176199636905969925410436875329181907200415759826234546672701573697113335704140320937934512660607079906558687961615799849341095409032124365443108731615863757273748174501786655737939848669229117599204342247600648597600549782806294187391474966456601976892636165982896565574458040991426890947249706735220470116191536009452736325306664402010023201873227819761486866348989132734701444820324293117841009152833330376911197051252511890297082942974883981371499778052781649343705604326005352698106918986588689816108899269920434547815535740465293822554757923965125781698498673421821853124073431152960821411209199994061601015821912737301650176958118619036689779275690467857101810593937314388119291474944356522189626028632586636519017453659212186387681077742091583646909091651827398075310306649980624484927747561884529732947271391489972684077858977868656048723305752422857172473443666741818123270841591791478616819780032875242194648011931593793515239417409041909841257809909038894077942046727049153450002486042745530730683647222075893082199445234721452184282562092914376814387802139693639978602212632210982207735714412941264065376526428543482970693655116806728306148155350067799273428746717408366660205372922048484087025230125857179145696657952396359686270645903720726805879439813400667670141176581252233481048386867717405879736896155996217846549730739340954660431458601540495615776456167344721264274687461408302063879359804284966224722325504660952317681724586362611284833874076507582889567745895887361095197420723212623335561519338247176021818683895300679750212076904388381283562581450125007119027156514434627064814950590196996139040560790673726072411292447199477028384835318633298176199947312833144915968777504290327977034761938062955123840138422910035767692969859590544398289266660878010344059670559052076683702101595219513945447731187410723527945608443549466760792882681935676466658916136214042478564279268156254485063166852683275246560027477652412794270534193482805462670281599245391248739375580940125919778346533655735625937668087699752574602702166964925299837753819693846254708518861510475226475136489188335738189169712195832681004195765377021192118272566508896682467504866699659885042041191615332089885672380926018142811762344795582942880858136988607372754974912130687437421943014866766259691695195368856911749382319697559557940217938873722515159971405447289708395510365486662819650368486846610392745568414363590177744038756512080771456364877728443833156357249683675631481039438968092119282337414507618630565777737794145333025782078879337135523281930667781034744878814533022767115982463014677391318064699017145323181957296401713829934458665281042390292044042050301085037228897072266732041640758383521162554729354209770671865262076294672043633643273505663204112521287225894149976280468914855507597361465051176412579302836974532036046506156923811972132510561806134521343817681732762841418102164413417024917558436568114547977751958280662844249750379174772362042042450573630609111548402426995643360035301436665975118280328039534210540491910305673142107541302357934877234239073959389300436891328148546882197053482680640613344760357465909065646098009717176995752043755635452168504422439082780834807215680031213805137447557386633580661289825695253557232663073951954063697946913927391950929709929134880148676072714978516827026905071076789657653044046336262688872262742931202875173849755421431504998907456461215695542535701520147462658735882915448693671682109726387703669298762703332692676405112356591787736324770461161187528378640880382801363490414508513182955873803365715923755404374036600943126624937447350183694088350123180570255108941846936668830380623604361689986818150462814543993708439467237952819530328860609963154780541105397983173910481917987933763099182400716369535925678358669990852568283461799920448492158286825542660666948065905588375476747789006303076397732011916264419312313733282236418119343830505865855449829986899114668131171194218916017937360257596321853210486874992047347029942678712761333423766834282256575650157489720280343180320624484957230973900571509314538918434494382839737345157998051562591643226270141862062369447593021410508502812036049109939053684780560216627046368552572741329060422899563510252284751907030825327384995555330449578033090259275316352218098898826291159803371125701721767669045456806492230515747468915571710175672403541893506112888730240431443198695865218667607330385490360277460963545019525296534070301597032409851150252930588656719011250832847149680648943813007837186239244681790216217356912288723948021648464737751768189421222071035655596507979484499008271935528147914340403713871720817609031988564587461081099105936917743794712879368950324774186485806481967995614643670824870899368395131507203056530300788685982036072066991673761641475665428771935359104452116916769281639636456297834073706478827406183405435707741216138320287378790378585893274553614956446125505055478266874544550908868894692718598894942344950748382185018434130323620046680700191750459262840838505364312676869803402681158070981034589860413084173550995694415179917543233480633073261339139979788000382109132766014549611157042858028160675162338135386305242956383309503201928781641324922300476117953582495605914530004246447880621302468978655969262925763574028799401356921167553904002699664556025682972369504959099602717097381666168678004832729299059428102968161574696306060610106226717021253966747951389381374853895351757832945136426006936137777440005669930174020113667731787704469450601292260749691106157620763789334504137336511956003290783523596465326574749743528672111629807567585108385016069989693586715225964630570091390876287416492541708169096847309548860233298288800101652962808976987723196907421027009348880934455512188188336519784318535596067476350722161178728735639465655434276140685594124259121417078116303080101925876219938098958943050939682518277130330334926648853295618795266446319063493896492797477963058182377606580354022796691081809322672514261428768508550234036395970562141251513762046722444289799785545413190137205600294567063403824299178075125724484463577152589347223368452680005049057940765926118340462764699835321989331271173271051129387746272008131726320867124724783103695325057116684669339199938383416530133092477294293584707438826342400701321713209728274947961163566782615071566282502125206276389751566585134060455290109261126381662242366899271064904188627001442112873592393998250056580064325060750945893585007218072932230824610825818587467133406733443268051547565276112290094215465561831034126870172286541622690757446663740257850581983903372668539128342511388977610370155470596978428438121104166749642361936898406356138762279595452151468928813282394396366129450138781676590929250897532471669123683482751546078272804451824345375965504925680648532309992814514753455092755527796279414245574405255218825323955625085721179963530195675811774436762550973197511556514845137285424074904838081995588091516117939219104261909284857816139051482314744553101516159178414599947122390516596944103972729574115833974593906205007758070959676589892496143734348781563774420837499914618345134117857213565765100288216534378838906972299886294622686851956288323205705378942178959367844899972838082251295857374295653148704304032195433016472204581397905745288020747285881031140858798747211863286489844734053114604400480011189647421657199931158890372059003146641812617920911940887850066778010999185461909348926691850911899853281758015614963442527274202132308326262537829753747808496486205747377298059504902145550108969348064510974333005997985553203313182691751915919500655848843655165633523507949744148699554593468266676174984193192323919858493142907033972490741043353155071618577128445270455615148720821787901075809945990781903407684845590803485256121124463883238877600772564059505857614506172929101763421062016322763133570869841611333843351915955219934239104565565973100823169947997845631959834114305637058884135857232439459993716084515443224733325747432690293211134055360526090724168837533543614128702342378252708953823576585165964173281100423670224794265894895420024627797793098934507602136241713703106513275975961348992427004704717253332642277426234756632022517984249524982127655951139456814127007662315485158257359633538267179226699363339180668550948028966397016335803063577792061512929958681816023327826828756138695348983385807840486775650291623281022321262862370364711672590911162207449944470337154671719355796034064957218399132431571758689056357820119356227777634216236724756676876172206101521338942884427554638039142982934097063768466511699684549774924842162345498790190059012230711024880588049920820267341521334526194822718040452465922884429554190815449214580890457049392729832168834134299536825867464108367284683313287432198123007451303144400768357402446278097701300214218712351188443907814286457148671303162743814053388576038852946905077691124396402844275392116011246848558859087111204331369833551298317704475439527351180945626273650721342386754878162350966398758989078105843337220397544204986189921453439457001076699302333404507062355822832197939121071633904478457406495968373683599961027055981093432754571822658191627376408326491944633925414125704727893001218140995028817766321849854530856667900703762657705838273174956120917523247601272848854422298986799882662839508678945771438815809675505801148163295101341784549495324847435024616682604908605434986260707695220684576930888101993638860205690810166450518721815005743472746924004566280135244242904323796847683264995978599541876796098882406497426652295844069729776191462648978315102874006697923620332060404453547944198199894752531957170520855316177791641077276461392157117740299135555015167097966196524062222914160997227029865408714690791932911101746040120652081190334793350740933967335438106677644251621091064097827740393472409226971399864193240183367625787951661669211485708440347311098577186041438065703058114089652279903370706792777717324019606366905990239660061747596602743647723341713211256406957304300738718969760826253778407616890456503696412101726055110506318058783071771045716789172093155510051312624885074971257088277608184629735156660641381318577569232194221616981981833861591091112129640683476454149874892596769391552088999743483482510977171733477484904241570447657365745775288703137087391907218250577299317720421259661778909462781073748939672753336694977597757614013390964005994959912477424058226022767434791404365977500711749068727626934563752876279153861033480986929574289849008704137552160375946787643984362695913728997237720073145336673352699683662926085657058390388235938311896147636133170436652976443607494016496971739566002324847531278261351162745169349859149728425780115663540112574883834495782054756513486752535339309492987778566824738322471363412781566382459050230733983253608300387302483963995418402866298087668996005436067463747817597385932001097038400943290848252148607855800720302839262481484210735676894365084782917239431353773078338286204525607937143479890247754480001573891165778949114366003679354363932067762630211052152101359215469454499705888762836579334060613239110233812347891165133960648232734302761158534325707822596745669263994450654928199905402788150706299036213505045231732501367062439410618076676137866141456378576604420749242292697703498450126514921671769633105167672678488372954900567865723978442763113473249771989060076187591408960730665821513844913456155557115108451321597382911001114287389599461623938505836032323442082881450433915073780818631937207838031136417583734875197650793352053542610648396468002283180323476626782438970343828285676740993880122455841828250616588718419177397134842495575355361542835106244832821141075660967969951048252279421587069315186868228906599054454289767683407842846866351695073592900594465251718651841204544327116374524591249405103177497432716433047861042520357940327121038480844643633301371529014988427523779498345747998752815119651594344029887214917065555918493963736202353463688821813143720813493658980418852618146166856463897428391505955837039471238321734527348213615696128326308516503821529565084208247108348556368415289277977777563665982862156502212507461167590321165420965414701229428385457567214173899297998005246418168473348180217325219882119503518467058280842927115925999701537509747900795093033188056558010139808122984565468161871538579928128610376600684408308498397279763700416603065246148266042831177932893558742055934518813264760502991798338271637395986023588785134609267323195158872972924667709763509894677014028229224590936493192519317428596941523665646599511192546858864800103777931630738794443787115163435808683855098036167341177467955250541569632555175659300110987103438333592007520317718713211694297373666504816162281397436919436021979331891137147757928460485105745428328748179328722787109615896826041519103216035886779474792592988509994990492164849713854412553391673798326983742448741274547096206337139047404836079415752936336390448179541411173493620260485120123053605543688879386291448078791005255598932825277335435924706739997269227399277565339725669671524096773073517612992214202555065314295490874261705335850333177746025891528937886543076661397186947435020469696687505676637825001336654434120149780395334094843058804080871386953158989175443230557614844599297128725620764700238088330825578637544806735453859876380858476365069526736280986119900402679811302046101019445980359274353057449296242273773395520169158005332066975513019731133703912561191330543297941699192948293905572679579528177269687932911425777320500214760199698152202061524517942389845818526827978979744054165648056210083302860547301031605032014574051888761984535029699992646579565001904482782417386095401791037025463814362445250887029226639233664043519678003566545443642503625079529648921390656484140182736971450214526431646621003738099504185588748963082465740733426300253099497815591421287519705271001157101716377498833787956568653934426611954407741443992487423206042266159771478006548964334962358396221135312572898201355984815657020457482109173737866280253930704465543688974749065847794940959812244787432218660153009734548024696172671294778795194415134401730118832367448720447806236637003524258617656838084857368856902370922908821222720834170089791292565435419407826899305573151916990118070501895885964740481390462609707341954494227067754033537102964836062032755617310215914346844155390956590974654992791537633294735996020089802640794682925361277898320585360585618611894514061132224271286111668672502570336348863158571739711603288212386637491874566260429531898520879176927985320596870827320607720490875624976239850639187378806361073721159075733629897056657468837735159852306207834856672673994501972457061604170286561431266850797557168950806738619613357613077933856652942611789955761282203962786163036697657292746317600522624881300262015934469599332301304443908514144069612949095143511324043728180378030527016147459666973182339616557550910094477201123130169927082110437284835364658022798435317648760439520807362259586407873458191531059455825240310753772157432145713447781843098447499918919885723488153921904520156617192555429987533454002381109748520270053711471238979747010158547538626802813231702862012903865851442364486492865523581713720293880175294101022520285691187186079645010876529842532971631174418650752018769292746421061313176203085067906658825606161624512329833385602122519961320728581640702090623127183448482230078940409243916327452408745667813673557003975514278073920034353313212822873286895420618818832914189042392958293492930594813919419210154303243567447699243068489549520239545645503065047097125895308641001156968732728057534628882092894998037694276715237246907452768749411737611248907019198792964232474948371863913292204033404762728529048057020058877226359767881747157982142176417664349005485153222335130502004742660842602758111430811587735785368141365683667133917403160705650379085284322678216464359301519207099123433844476197489701363751895168498630633471243935719934533251192434024867226850967122444228095486209670642071460389235934010684400475369638649751359735833109378326001909251574431920376122937708905574543628477384533513756498116412336892295228886685199915916299617867208191837173473070068228127018606502753029833901466999574794461070267161116027871706500234454852655318046152798030135889431096643822247543977162304676463531802819964493756623711511605197875870834292146749800015297141091672570579693615487561571782358311177101359012535395568712745799720175926065461900593796089784619027221814507235879548427149913315039620305124110916504419669755825132181861783569427554061455972705352382673571102318081972085394860182205482689866360286956681834866852454461440840695218263328048760444691900826696762964549075457223692332744166491319556486439945889933877587009880543318639985540493230677615918285928743896057804640984208974055068329611397239222226979036469776787551730396664474157472658465478065963956489535819557003579716689122694699271512844864772273981174181488663319289946594706008921131898942967719657048618527686134236881500004172380028297670052779227655408485543334861688984973871867886189873232380042400963864067984351716251126972592465867872110705380153194957716494850629815798946941714282042164165586659907286198493849175480269584619642294779314981223836415385570380897890076139010323497179696325471965649122745582635413234142436435745947492979278569607763591484728012121820571237229125443324556605340748495181446769058959806952003492300124986619376210850051236442547826435733821329660966973165353542562473080902881776113373972062983643050540861940622183850244985475668721260067633974373153257838354874824409780973933614873102023904533809474159776645603137681106298921409016612327003900505022947613518859124106470656031298014608889949278623547812337075637352432127180061053085517170340536033073763018711366935321769842826017611218600635848965341436067091419977924640972114274495469891463555482864340110401472230084740058971939425556775578440399365701263770092330401772015709714022618972549024996396256689084858977504157130429271592893380146276281780424512433461156729170872181169866958713126106655810971551555696334819844224937727899849001691334065013922558374525364458711315377496428451540053640421859769093297900720083629620246732239658837413175290586626269446735210442603791931521103560615613271779583324238941011378308624546295140958171894165381882609858136255070281472074410103228385697701212667932146472801159682437711016405882920381222982282550564885020009031599084096698014250159959742561022026318361725571114913921443611018533845568286070315766448605768250919462158506950828494085301806644991207142867598986688412790646539483571531979162968219164287626912567216947228774367226907463108534195440611336084871630083220781537154815435464583702594850361674707073027584996723132809601629361233574085051675867047032285987247398086473267940394913937913084973632414139029439284576638351984218676346643018086896069214338319604221009472098439766652282254436830422205470143256511942687039719929342480639118311471596792882765901606584811613722944199433263769016822243435592607990882034002343509905859139297715760494727077028309575842707091369770437135759020267227121355344973304305067410370544077345958430922769374840395638204885926470438636211199354225500002561144970850527050091628929604984739830597708931412041983770187000638580784426177361278758099551595038466620748481572501821235408254337982027525680745741779553025894681945776460653749932699328882053951518474085147443635682109242501710525863495345791590287152212995365959158076973734068649381356148346862593974252934937239229911260953527890147415209461916937523396079180058881837850668857882217408930223767078926490559017835733029049861047566240884046301744209164607927659240335005213697505366658033405013128071242798970006273729152590701666746437245667874325600195554242094453363343939195676804590871330983447962129663258116376546648089007112474028151564343463108144532733971543233454492686193074483735329034242902270632344509081553795123775716104927121798185353585099415538718219449427086114969262082228311054505260176469442149847969162493833508643899797943725725850349473321123642015645445958323210258673382120827201102361718132916281347693613362316300055518541699451237030874717693475306380949148828231811460148473591765019683057147047139716805417120760854152779061484081543527705471113866193551918255549673768753756559018915892076743526148852937632107873123875720648408237375303288464023488292875867457517411964259554732547129988784413376971744782895148060629750159810410965179248737254241586060709263434511221805151576805039523207983907038445590802489767512428111868311223535944953623328051564284509116382532846827690377989405609730496598216774794290605229064271154090759630490750045786694806442407914160424989736396223835534265688248924903094013532275982922676180213994468018996032067580342939794795005811235633986972790236701977628984073319861429708994553409037260576822344748869201029764887194618758629342131709327277769165187100249899666585508381133567896174811392400806920441462566538294522339155160459482487027752402656030802416084063358310499159313085394742690732347208841191820248470757329115072124544689852685531159985111793938108020977347381749339998889738565369940387595253362174823947154783480058946039366591889289962175210471630466038444412373450910382932483894560012983649341732042243216564275828626964629870549437086474634277118529382480439358216019860700621711965918325918075744936556603190574210330697537073223014044293913607299742314821862057127972408432297422253064784702228772898891720445413641683018620592669478106500157727303468399829551105996427519834420909942982394136155832653884068529837501961002674327960832267660898243739923045838193599445520364710959082518991662915931963986386099844252455919444237409807650556117505789614643591992556426759631196277837512874653796523866525681695700326964287850720184716605737922725209523210990761127024194913962807481696514943204319306489969675235237780133601715355794152722674404383547747834615417136108071971047308860237450312138900813256243172049768868022829255024334939599178274676959411554430985036164313163944257325967461417580663424492506040232202802946987375182931270655413778298861958481093502663645207509319615250820150239512810696188302083787791753142473780066613661071255613809568754909763022481825473369577744250136333465052729624195150307001629823433990910006155502494673712884321972353399452938067223419621701616343292479375744591466577156266828511079209801382360277908524908614061323820470296033614212396789169499234232171528883297993911294665253847268640531873197932267770276017871515711271319022168364169453290451952046150335534734469787141522447087707084561412083149801106667165207465553671878728737469049871627624680530857583522804191995607327665917569577300287920706287306356228290710931722541244102899656219439303393597931272982490188505998207530280581826873453626207698842883892896355177269977552708928071198383271264164981358505660929746681941433220376360160317023864540103804193375688745593512383982760565299379694631115736236765803515756436802079790980697358928950333631027509478478135700064703167653179843748938593199284467970505014658422277826960675919777431422848983462296380957522453292343592235130441203459096101274485891405058274767759110361971874811262596027245866765571472754939412055513362289169042638208357399520615723946451744498991297021106570959449855647567105391013640465590616591177906243645957393460718577711706111845170015454508099885004059315587509512061655456314620073873944332743915654082222655166711498136135073739954893391748086374196648093278171002639550259140477751934720526936117215529192894891128512312563105277097234938677089309885624797358932759808463423218516249853050362731645550860024480112879487089021875287345392941316146620881482680861416201591554912204198602598488609910010089355219860042743405731012142734029475943567269776285427772767597954067832154999870802605838132869028183862100061003376423791980019442370442063331998932146516974334576991282231826114090708986144154081991473747433681644982432526608166696697336196953321277769129772635798430150971081585627795241014031219725399500985483700699157263817493342319841708678485963309129366977383562887078408002392235782310361229231334313870871375607264795530687856767876140867978538841839750850468350928414471968343566924539145396972670386570317296241838979235453687070629105358409586252881729281692471046395913765433977510330386186905416278540679671885645231462534683464300203066362430077280418391505048399774639065235270047668220337015691585237701399054126383476484663841179107634163945096265761345248340913898753793488871084408225150247944719876888399200357379260736576854930155343026843848388931402721966820387276849040650786414983954838623991443271003548414285714663675814108685756849749642492058856984374594686574480184934228027958235637756438826823262418776221622607090451984593267734773501828543606939352416589601174507376114064068959882929944645381868606647472888991909822960178929780473579124796321869153687036559529444334995425160580908304927359408810125128045910650504766496267582224133933158027094209234354824137545730590871565675676701092095054671117837732104759766979436357024999172477640990996184223422593896684699154418877209465300703443718311572870573206739875957821407940736334236084963832333591790227712682630327694877532004680184757705394343007951196667752439615916630827808395905383229511272338207550744153078897776286771662518810911875351973300986377174786188154764116022239030319559678981537333332582983600451889734131385796009297774588061424010459150147820679739436362919935582276023675103478275564866271218825552853178253586010351082258145026112047470924017186025646900684617317679905734901100727287689261945275883358758221947384320834578633052807557454938289523900598456827291413464323488171485846067830594826014535968762159670812495532305763781564934456525782552293824962657511707494988668765441038270533740898921040368677365604542858451695031402232363375702641796577852081754489246557099240813236655786985264535388801118891932862519259222135566768155760927630615575930662647392608983278347680214605557131593915751341973623814379449788885811963343728292321966320335780126113077010857215989820280124527014194405510821109126282616707080627427106208073756237473911790188063039151918982517186661375757275971038981146281320941182432120115782881787555919083128416589810129599397245828288503470905302829222517897243132948789737432150734138953199236450940330089444177994978550611469561529485655311222946235263060515601499246416469416535817179065975346477474751894490338863769454910133847537957012434353283214492982757320649460057035879741372847308556850024140578069949444209656454542067040671269177034205589354592147513994658656379532449893948072963453595989773250352242536697552026259661902239113744647015156377494681734403794532885953949267776387559086479724780886800681723558531314356329754317660439253838540575689974298509517127782488540660920326559828127019571356428139254066130983872519138828743230385070066019921570688871565313698645866717928365735525658627188144014431714367937481059691370932121680624247162372966171539343995336805414569867938971784889101598603095412935298746169109192523809742944551488558318499498594795902426366425548655563314934689356150341488374884631294653005659807467697736019455981528630627612626766355773597675811384216123733145970872986047138417401248888918797133273636262511311334676537629299840890377895200008539399763584744281979857678072104896345990778015426697174567542617238402203277336476397551754916653384472733685352496691562976924834362650474619882335945593854238873901364177046945395798118752712159776844251179958071694546686174982003891413675742529519923536302864099584773808066759416971558083354262399667913719181197456509501421574144502465594282308668548345475504175328090492439697577338340692003659626982380632105842116831153608063960003029834869862501418951961597709853098934159069182644746212429836075434644624346418375891269938235380143849573643323589088034003650356294509895717318211938753606040337502573311825257046693447027575665724602024343580517617980430500157661220685910711916447836787755287555765149553864629003147784335242018223228186288983604995567100947130736251175046568288749334511080043705700857207322750831967368410921087264603086269870121760440904028069794911183964366052184314923073516315889044454805679783225559628577325030639073862370333133937948649073559546851796504296661825531052645982451735375632502837394355101805927205309010514290924335273127869001515130558740539553595264903028131275892668785026838027753980878419695424447075982652771476368013445122704646965861601405000598135542660045553041256453856489931603128055964697097277176477513623793186953564285143044563012761042826494036797480293301901344399860928405868810026888328778606907005752229163788459542951127123641629041724925928703351812177724572063474441407104579870116834865389408608793464288581405323722052203338827824916065507514284988950267304733868941466577151917067007154628493341305459532617825762474557786052890705568120939213636020794840019045348227175019919985035172181982915553739405244748816084011428682985421981541739946151944675665399110862570266172891572116167086128078644225968780654055240840769809262297989089743886487188124121528586210714417131468273941512454023152718464160210458750969483759431807362021929374001190274750271765673435942473670661803986776730560640185899053575123002306608370871168691475791336384086232538434926718606613904668433787965167900709509607700445453556313624051358161617384399700872078005727973747669733000195181571665144821563406218186569555695230599732096135279604360849164645440098534029608616745334380968998239436938249495509471695416706412839424517141260191624738270866976931180696097101557258147853194625746145350397626055465125435021452414343298249241381217713203403237186715206273592816337441031547104639631117708345350154482594576086659775717391457660958775366724984051724570082595821245485219616437893131098824817003842233206328850043254208492159442373470693012469333391888763956241425406832442961396568624031641284030587825646523428183365665189585503699094325953094250608082468414255314370373906651098967653980873587499377033458953019495195170217522645207320360275463941311371161162228990045708028475403614063814770890413618963981467936090582948205418580676537456845215201141451358474004249171418349791085267557869236460840510296405685471629114796051660512986011642189235847067744783697916343692203021988896384901524172648351087367313458395344215022462615533663361483478643233561380530074966762084287575307448476761221295204640268425615740219898496340903610921847604312888296926638081824774162432149180517457605165276714859567236058544814854402132907532311933789705421376692598941462443758062516153217997346963717964554733535492490014056074366310647417667998572569863025283994443463799305182425984125798358649590627890695365185495918160282523112964886245466247414987802348961990493472819666583071475772532015868355470778367282575623992435546393774544779733829602922395391013639248424579908952046563980451217891118683684611173674956595237321588319222476966429594969400736850502840377689062658085002467172958976399152885528712794692079212206720132052809396452263227086822123147580066031785861841069345045525790977739566180123341874179413622157860500783390345912525245404857543632770893637348137625065838802048457015329172877536585102843043037380946458279446317034769613448682880549387474207836072091819669560779780786595574070960443029786093090797207307496070108155868501594809753435305272934116171483174733966100517521700230147990108690345229770487759840572862989418102152969007455565972433483618503777150550860330111505317616416961877236613812722787109865173452038573787302166127222580623945634238951182710638999382819394680890891714268678748870323697423698254355888832460845820284023483626235883643493266480175590460342821517219563963495304300848416621782715144945954090117944885259504947265569119457920367936540376113867493761913528838976548861213181153030471606196867043644288434988225523312968750291635458654268660889460469293705964951284489740485678003585270403993562604898282215255571996993525794545261740743270859891130014290671400225943274690218982995179553442748718111642117429343466185812595775017541353411801559140012523994839390176617521611923006320392693503074408005564853217364811681583302031705897646782329202381824767644909239971574846690066268487079269797454361050266597917187256545818722599567184718953968963563982739116945400828677220839735648520196059606726455519342925230681863759467716574716398510375801026645131490589465320117025939029809267215532618811216870595841647293227196915373233155149878813034739889489625427170463108520020308934976074748096952314381448595233628759639315703476429000525190908752531657407924492946317614112816050060433236781492170244718104090002523572907450940087541909448501323427737790282037687775988388910224289465863071885783632584011400402958201515727775055220497671741806522968128144535963077468399197436150775560849014830488152662261688754968034628330406849672488458314489610898411164185347246790495429842336879295028505356227380869303629064349610638902734239816444371298967524622134998071790983253853751824514318229817014980471474405208206771734829307574244607177847252459461857489049305096509795390542253069212360701703837910857146983022577248525173845914560791055885370470662930526861151496257016777566050987152218931199319086080409589327271465200315991180436374064955449852221163110792402530841208587432750830257360467355905024287620096058217825407072535881942427482290612611565067099069000096462286669193502613356980448499030606977087917964203449470664734358313049859323970595890765212059389769761799954609902557501292529505175646332819377848179827289216268839791503902841548928484050101832934301693930859769188207609832728889211355169823445644473332530729623985792356457676844465574078818475328003206204091248503790790336969679985756985481175481183866884928262489337313463656209623643601760475628848255746879835231668920327581208311926727387077628308791944164060207462803182215764029456583397476087986917525550317049629196191712150721245277331363754728630499003750245934859600321151449928406621582574367422744755010639122242188903912068857149902812503322293010196259879383127482079514574663690869011102131053057387506102876258248047297829759703788665270217441124608373700727640915037133336149717400905160213542870186599060553712590929896988757268780006791586909108457407802739901018725834025027067523492790845564584723383879369483932121937056631027358110963094423462935733587439546101715097484176032594835362175167124900482878786934431786340777895613431476530447271015873083591865442275335060945004542709438295952345006179508154991222606770536954034708723167037735800385888201853606077407859203091001307366861533205143094832971286108366025245559269732660010329761411191743742767827897475103029546503081040604842126629274922587131958043783255838142797282061046716445453966782750663376119561547180811410663728904450860711216506603398923855553767532053879934685050349218586536215611625607737850783368139484509250569703460543116890143456562307724317804512844149902118799309048288989666196447742952614868975745732046817013139309051170561296813362465657670327529978842563672610468451395578761745542614079499278851594193234557306458553637676662779045651946875235905070702902642359376892174112583357143985547271796933471669904524573857657346363234020958011223544764441723301996887594841115885919388026520824126254157759239535571390099406192578857624383439670825359850867717452030647712597168716292719811087226407167316203119950574953533507855790580552280567687094003588621450841939451102129664180301025071900414351802625839184169633428710839244701121728427303277470134379841173301244691377597488172808378086328358480604109242208657677287522099632400804299449293049868849898458249983713858916691314115948053797704200159706893471118315733890104746479878081565219264411241753662668216817707694323814663364194867908638258471341439078678526625420255079875005983442086433532034033854071697004858954238194164632023644992186969351976251487589536447516344494064161989416711341044350148248437987463916000978580071488654135135723460466234792972728314241559208002510346789545427521942413257040263069769465401613548546879857144294868030391018441086389041448112375443712853308239937328366819623130295691856958566274113770338858536646227471931672503361104073315657007652071242407975699950151716821900645117887028746352292980881877100729033972992256642113056013757759771901399412363267280845389400319096154214993192613364112255536011836627327838526740198754781876353935733949284710295825287103809975654397325671294875582247836268074527390349037453906581151941957264558587882696188599474918395265496354475713650412286059311783277470431717021755542733811316446122057779146073657791463076230156987779427994708000666933390808663128520372580428713945527569344186438283216307542493576743406689842924817540762456348435859978947995073584089721127260109801859131872698582043602154493537342282099832151279967547715108672556888219897690679432319918500345646597546894209085865186885415650053017704347774479438672703930952508071748114388066769440408803370027622892294039495464568694673656276512157444272755618547272970923160771008330327612046440019501088255436661183840175064330798789601849572564092270264536383848782826443778467646788945218613735355436563776064766781708984505435511469123142741416483679764597496100751751595807391647993195111269366016485848293907331879739169087881956186743588313735155390613140986275515212954448771045808977219105827633989474849102783391699522543776814394074186682375671244233235148234658676499645194524763308705364406871414568326066397694548019309437100867957512398911906085980795618977028617046714020263900407552116967903967972007171335597714677918457136111494079667124629229993314776342165412277835748258627534990067921119780603078857495469732841964644872481549238845041687488440326562774709529606774811952785925148107028490709150186522875342941836314061123708587326294024339098198386808979186012746208189395020988748831959202092020419914311024328861840438672146984472180588274776118855314334547759499157081121547243048811098267530850187927122360672654247225549511677834995137607049303136759892216457674176156088948829950931142765681879504457390726038660155812138169555771358420435493478953642023389746495492766853536201317528657055058809440977166826187785035656932488370061916868813257698988921537701642941547703528005611948422472985187487774953546599864731283766810231684783864208035715066104376080275900992417626841020731910411686475234925060364563867772961804953661056181453874745364735629557600768283850026539033822042359255398293284193944942050008998872489180621128704903913002948556514749543445752448228715834065454230746784942749309634700151432631241612982110976577978086462089636434720880591553642322648312645150216051965026584720667061301204933869699220607212055074846983132504456790361979375114510561099405972270610245531643418423159313539053072773643156367264580132267637726686186334792960994124327001774495398230432040025449854464125821814920560149218878884850042818418295383774717036791912893763087010427207210527934076159095560569028788415435937041294487067737642712638215283791146308614599688138515495896934947775300910908956450628879874949987918977330055395549969672231130329962237357438567780028847289642133583266974725834606152803712627432217243252933925759249244741154505859760314253954019027327179534824534471181832675337725688313193570020831617831857934695550625098741480850738372620144835846400353369127055621195890629893555627791783990885764956240379714308839097111026422589746293176689672234040127892499944003014646792202038304216198807717346647351646810982056584456771849874997429162956952777441709563128459610269014542233395364432479089882752945116320992753074993793818983147567944412459596372625788487798245921701280055758027161475792168773028767724142783904590739127392942678843857719239680522994034053347073573334518367251554265826396199993098367307950372448686461149373049576129415707070662032891811072389155275383366638170804303305567072752616774194630606087015556574452308746558396124050301480579106145816309013148988618821079382747513047641248682780160190849678442189011101839255967801588844050853939768387360141912309606008688848409587590939798875457125098902772115401440192622172796546564989599214375691142902020411115792487312650807559597284727869968278916268278694911524767458519228110865267700981927943533791355350051468985793823713882735357271717893830142216485717141029006997282353232884846219281128940817079740244219054436930380174929970320843401108733211145368423599993209089515669085964915227766722963969422424234188318035210991164028064348473544379832000036280819097685584925611752392977416582041844810908951268364708462474117396127148810193294558673819432508612653588373685599202590781539608212879073060653335449059883474701016808696373177373258291394020149923292096927067831675968147669667520807748268071111678492935846198418626172110925322160685253881591855988062776872164381835160495538527936421090313103607816243891471254331653700492954357313119180428419650321615780904252013312485605320360859144817671705497669073927648951405521520609254132916570249181716644372036661368578767332511082859038192154476652862252463592191750130342843933195491229727926976395317486223207878920268445083520412496126094785976476405051344616457799579741920939413873112767240579405410462075597015741827181915656118320966587774081467691697748376641838608175254785968515246948077528179062939927065252312930894866450147904547107615155399799638954573549956164209646047474598537724051945204244695155110576014942214459850785628980052001501442172360303944283424448708887381117569548458688101588473050820293605143013701045069902681581989459515045374857234879807161323689988928620499341347784459648262388689344956413068869396801624022569609725905836903591447830464096918458265475815349450077651607581956641240074336117286666057806409790685068438390865501366034171566121774136535246662924038527316315842924751071820737619974257005266362873424852769709124146326043911646825719384474976527412791288332764753400458797875672197285080251587765490565589220471496205252104012016698764453817493876153962176209981866956434937752040786704550275749542082834382652727990664040463085556015793541580183887088771405230057777479101336075834637081603741403358166217105237795477803108287893113898944795861169392281377248209766223153741655518707243003784468387344461018587649662483023535529068562088936705012914503374712977082985920552405187831056216521322461228800347547325593257117509161765941664823949729133523705438862724084837055281700296298090586508047949546245822401357141584900673308445738818119674451429115214342793926996556225719864391960677530383746866722217035568908425034832947667841503678368198974756263607605617395949590453787288708801196541878924765307820255412342152755546537527848511642193002104006960154442855007174370354007033593565053986517857070065820998041957449512358764478124861041475565904500553778745425732766313738825020172648969616129101048127932637456731347387116638770998454206702700296011172263762727267452101811865591052586145338819701289911963847350290174000706806314623013080539754577602872474099097506917882619283197164721284958737918035495590854500617988132119821142982583753056350978991235940544860179024862607671948351844234905871907533729443395924091853528029572010383942096233427756208747723170117527568724101224530281538795845096348579839104519213186349569030391256411390596412540194362929494919213530717153448409684207106422822898118640267635071607969350470210023187810985613567910659306600789776255319789825006631515629833544391644492580570078010616280321022019570475798656581168093324230005606648967369487624261724101199075962069434685940406164109057115534545376809232712872353999074435919539839737211013349491656927142993028020314774560505446618457532305901707861564430381970179149567653940459435606066050701739389313213462585038107319503867448355601949182280516773057685026884325495890895608141995075256518935540226366100848161462038654464771071218795163069833620214074612432738560733007417290853413714676466208233265300757784578012755078726278301618250870084281877453320787977894296485859758192842049964829620427354073385310054699395412546194734721703995270227035779385851296836644067889837465656361354447806668384669765176614999618543989623502371767110274089091939958314514687236128713849724206908095044223678551028762868042518816358402616298518072115283322375809709057453569178401938160024396543257825045445196940348840924340857899982771915123030947380554030823155608186071615834339556172810637331106060152649641481568404319462356043630174317509207713049088685604727385517309538084750144865176049756773607833154472292534335963845630215217104987385925310203978958143336638415592992550894460278070179622745210555067119131632626527993669635989238300609698160016708813443002039117719163070163778003830037112641824146014987041714805662603384977517560384954919157914179295368495970628632971745221494526436400040116851275873879434866688375722889961342993866402364058944824529124282016580047816694184780636604784838176185651558401746037289782158565908314893065117791985723171647647241893043153199908815499713774207210118331968619684944051847134805103762448875818172772334427215708740008524939194933981030831999522885426263085181455141049674896425768172031457741976055401166514371933763721881865065248544503999376609226777707479399801422580866214987191247013874698956765809816342407951357037334868399460740014838188091091227850498742256394710285890361789248694551999049171162317092974081951721636250623714208252611907131791876380037382099894155167362903105494029053725379895773700088178658870490439209102611278111129355194227781921470074363737351900832947336873223965494763299282753183518126240071189203456588554680950302630425192198797773744326372609289111090052198687553722810530557641476148246398586371897727977619373087670426497044115114128900621261138853060373672295958161170213950300741417661128483328860167367167320358804701580247848646398079995767647079233106445662603373073615899226178752674260135360072952785114473129927914524506233402909639717592321979580111914669928396066090546200798237452122450360169104115632219532972695445551518284094539550786740409371853236603877962805143126766274036439823983188176059785281346639469560555811845893980705011357516820680694894385529135088285447348281517609715423859522132730861322041292330776565586927909570047843039556819940159642233595945502281056543779954708624485590800370695015608019307214648972673163938925538159958617022059139730270900638588414953461627642604428373891251918478198500254982630358510063410344376334073346990312703558308011243548158661164679904704099547923812878971867801098152049788060504766682036629672509369396073136693374720367243003189666204997506525201754713578657346438364676379268501958461510696765363902447489954321997231906116932962287789461226566830643518956163899574507722109451279918853244493764877890405442242334709795872652176937776370796040732789702455829538696164126324657549210448122380893363807649499671963486155406090914159497678087746191227708286844605325727180192324631999466767892603035979578118279000471394092171939987407600099970695816344792336051061664600778755939545785813561911797348472427564395444690018537030388994721998308058834058367204730105933716458537773337382618819978607406745090629225548899083443584470718683462839079294708011696863948511850811643813460281234771266500937086434980810611925116998390691124112788492250107404670010024987554980352405636737156440483483522461021967504033422680901960919183676975391844888981030769313603684649075185192089980796748495206425281503988219929450163122444192907905821755002124641564387801147363534860323181769769925688623422436511614137835848603457291845645973101458014423391034366190912117514143224004338147146495702803681747815733992552787675813633597536055953938401768676743047462011227916421387901627178293633202573540649829431595005547141144066372802259064990772972153184835396210592075094818702230994825467297018483782461121232263919435007317776200669540599603740376544106287192417866624208821464827827943811361974467588435956400543384035329212785957488140007374970832504832785755627877386652839778888430937242195945555354368165329371988636343681790751801961273509345804109446551725884968026121015346697273811614985607135933184212517820869764413662803131959266299800800499938017991534491839141860014917652009555057429439030632354051291327228528953318386128009002420185920683012455768851599860366708821440361799497576930101581684048963695057071941618192298699854618110664316242154343885744834338880719947667423092554142522046461326333021925412332655422517900396237001187722488012189973986745402327831011155813888762532752346656497928456091175839397247695692295816479170577534606301700752743140171314093470826207580556365138365779777856686672314338997158540512838175395172886726792433519324279446404274845572204271370383384282433585631425510375691018147458356414678953450868562901848676091677061998800659230534436395717282508884259966392897124775740130935543924733240791820455538176637235332220935125401324815902989026429742592787894547500654994692121246662066260821434932002080552240572239843830449363282819228454889328958740225793208207774992126360859118902964660983895888100292388204924622971332292970377519931361009803526705244868532263744780463843256463010008144862912199457156447900994460842936828479652744612765333244881103324202517473862223449069723675537880339959666403072143753602331036965733231523772298744269056689617796282321898718909625100096673816079948561699112561646645110175597163799499487451735865867708404716844747708499097699794470710722164628013946275459233625336185844576023868690373404023429979586621889714158804575375650785042610212069743697096921440941134689942630874378569318126994043871459489599835002482339043529602141043479871030683534297708298332077518071528480882833701459951573669234089522074675311090200040877667734520830410725541593900525760346091208140284177420377130700842437158672936059348066492560890600621400735246220346694340437762973714172956577384435940054753577833647871738588319957253806398099602645405327205628731511229781571608629573746845665423600829004305765331541271689897462285133851076706642751110612635113161609242434665697007093299521780947571129105148114698468163620994912119157375909346546661760859252499642964904995300849587607819636004710267394007407320843624420034614494703242395176785324245348099377528028052592404865762846714121867299740770308393074261740145003221049726207151701671849128134389819559697665219201908137000367278208254808444077054889497735290074093964115215928130985243276068247595225330802824831409114550349648055883363143637880869268509840227543561095303877707012120002898032517901049232507788502590832634143548516877220099829477199602305243885580448738331603586172269203006710187874260694178604070699902507500493233626929932140946580996465314285894029505075993837424671389269904330889696893171221522509329615283223140401522472006962251931218769483286742002917366443568066358210533280417672615156230212428885543250193477471628043834193928479334861222057352401287750089411533192309765082818111896355024958467106845292644845557427712134742858861286553169290497678456625964182472669277834400266072794741444083706645758512376709200048312194034837292085600229027797730864854147461858811157024028731490423374710220512254210599660703538395064823345926097124425018477808097717267392473194016550396078670123047395765332806585083484125260088946584673119157291745742241779493354979891900782062130861080386551622375812464835540650724329292911545092667131859296769309032438050050470579802957471634654618685966633481647375637582530295286292373436789494660108835291361314666383280711983717491455000642982081727450617511533164317850686055995804144705051451344346613543491323777336900047757585040469935495286508212310688552096189971243934341116809879539624817085293385576090027022794974124179740475717835891513010194831142088683249433148178023376509533242995528594436834355197273185178049465583509919430937022568193180246844883186770873093472780380591552502312040642236094709885301607583705436778374146441160534217600459326489012510109436888394937501080782355178495090823589954072647462043742888105083964558842665486927650484032831218209192252549114726640636220307934550660398838572486005108528078987509229541520536859292619877916892215922052205519853201479261471085918843186865741159637899311216099897611097963356544490273435909832894786788397496610903105796567898848146337793780972063390584010251514800188040123088613129755420721536964927058014552750216146780869136607498122516216343548510063344349103534205339346945249747695508626569362762126109157268918512773037638397957159366930679492986483866338445448631276085510051818945811041464708454015362914582274572901534105798816935405528318673603825088352304739202146070349331910672726512771799141383722670503004288951549134802923632392882422079577308657735443007871499407960630325769589926239205966013855541803419669893243670285104942836217902424447773819256545997264421416458801833242657385618786789598523634784235368090599271199955978540144835966062156329516389073004275682540019235888320300191134975232861300651097876929455311396689555834764370807033156924647705668317087358183948045388753075171478337119507687976407728846486649791823184502315381055175873407189625387985376214371724368207104688142052492393655087044891355416556266667131541921763666664454613419706588440480395862840116136033685481345505093590314165725257605525869878703051193190755363634544025154523395823365871603816085282185007141035499360846627840750612368387644621458919217791425930064973124185463655995675129585020308227841032613715113519839061241596463339823900878973879933716728872035678948696127846918029884000770240461416843570964611623794845800243691534462319297027637045810546686186489200648185788447046137629428206142107034803630844111678006148150239136901396657580309396590441591251209695297358127309790325832927479399692824383149206259029330928601033239174038383427457113513984577478320244883860219680767163316534986730347454013999215982211167111512544258537609167343276999040058449743475905564206307694693472835650649910777679589265079832348108401822448911707496651040618759184748576972103674326815148420195697220747344822087928699608362935876316538904783900487427479351515284197270786143219658284170693904968157725682805012202075109236346551769315157232381050180225855175182478223413643178816520685066139422626534469728935978057557926078321667388980661251923880001695343252262005288995610861328799507595735547495524742430832870191803056477082736701434453937593763155017509351851587985050694639052319582925230975140740525459563140074366313653185988575773788784190261411868954456504216033706478625262724708543417597795006926490269511202750263095436740580164721315926794537943694975261018446608580007831271913160212350913829704258702336416046448461284709186343151986536546609026761822474718012253559968132352238667955973692580689597530371264802448204581370182034328690863716598337757108583301036874346577411062181431765563396210063858316746748091887170773765355898662202949987382744425547924116346546794060365024746024561895259093499667359512271273205240111113918523027067614277230922294728810133192963339978185503182934432632206469801012951704557043006325015625043150836576283267412300204950639717367841889100514252530524968862567387384777966286621649736240288369309617354373373136677583583570179447145747081249069802297768156882572257089498908991206605540252060801322450482512081375674376619867964264129860594311283000540888188123313347297473121267444431186759432091066818417810265573353262138773747375534578279041511593132185182858877744177229662046913866020934969425605364506621333173259619876825885942987942670938011410541539939189608363619248741879169306463578448072156583993120379401183244802015567141428598637278598469707404755436182348158796011413662352454806720345614756939780122895658521622561696712983690085390043834510362995911887655548585010382420007282573831915399075270712724127201395819955356637355128909069762510703048920279452591556500485530466782494374123417108451112727160221094193145540157999752575970623571196509207796535145582849694641247127262752026385688988076835163458821474438221218629646612627082674226350571950473923863507541211664830262009712767100489826716132451910352783620701285444467011130523252269301508703063384519741892706340692454588091376803729575334680677935046864787458770737621925305287481361985113857578454292910766542928340713435022508828188929152445277839874721900813143807204302072454679317587784666266568465288615076884031223212187332960724426849433913948234400487947318100156723452617702576708867907794884357597613518177223303246999116657596635615488804049732012975600952659882349602233294960423551178727855292408028587766780633702288000221810335470733819373826226757192925933563709540615727780572441483111640428020011737810453773569712267028220634931269054549816718499502811568901079688029001125658917905559234547229213785287232821812125034518205954809677227766071310177860343882957331820642358723699341009810617234963824686830091332565344923468406806939017473532015044406113834755190428877540607758191617811541300399257403786443591301907846113155981228743338330985378397280207272868923202989439733948198177571392474916946466667896123429109370338793251233773971388025498350706646550164356596853145826507561070572470299837409048601724376419814227043148037384529368743600536391267265076156807813142004122411959494039297701634281240787208085216663064592305670320709816172252902696023063081292602279781774357161381029192980622509729023421402721191693803271329832008372850667961628159235828668657609990441599158720394183682247309036694969071774570121777144672683511194579923576437894693565354208606297301046730719822766077439302309468861548281095152021597052550236156478355794196881755560913857785219222596477699410230570038366747623550697882318965569824146502867863189211312240606180938604883264517308401695014208215732606429222886911152502549936021800510419326096907384748832391402415585332601152850704306609322444248252414417460744488445341855282414037622464301160849294866458299855205426715174054544202062807034332941069337272642970668910815358484014909456938246216847992970706873787740628928325451342260408837187219903835552674722094123126765963381557250244846112695927469752381449321640444689895162240069283709586273806888336291637240041875958645520463746275695830507984538153471523066411007256923629349276393671091313512704030545769699668455358471455918192837712462583521412445812027496607847718105699457043360508168509589453746307951839500347172519484435994948544685268129735901906906535989033569560310064479682631204573191011544496555112268417325152277386303081359758217229059766137627641766163476909125070161999553759643211557534396621688271084036751192999600088624632199987541809436005308741339626929982076296680154880905235587186807616985560604341753925240496799964651760002692691655169875265250677395085130408053884450609260109643688108942026856159073899850990825015494639182209700648455366366899685892286382159711076717976789750115428087230391288788699618678930719828675499197432627093410002685103259296326881852414895791244327648721801452982185749771429294366689378364382229658591114179405184942073570645283259884591225939492744455714667765151145692903139525375804633758579641581163621872276615189824122053513224224882561677424596765412540331784498838411137607350077200856972776264873652783389163614249642106308834930890332084877942864404972226828618599466893437948513348559058282069646123946497574122362831397733819087455803316751727223866473603363229422165312776358477306315342973727749231497394273391681398751716501781032613174550637765770978869597675742214937163528845687419756069536003933733202065164936970814922958343311631037274090986625747050514702272309629622876768936937738712390204651672955925396375704229682701372159784961803623480433790639703585582422108823529872394968853577050451828950991937634747320351938281114420925467393367822925849653220080015263180291408646888248451312773062679808155954764828504172711392640315538504058354882187206324982256830837811447496727888333200287176700343696901126333771406814924856099222370955185473844571790541768739279171785165931986828875641818677687684101914918079399611289070751588545524699476508217675677211646636427681998522410096521305046508340727574484966197616146084059060741022144497622366799448483777754612007723490483468047995536374920022287112718513560661682291232392180055827814185815990440624052625463677109244383173398476328514706535000797831849158240117595659005350270640384087071233412549043005892552683369109471018856806309748638940766073009576591462156505019760734488992170674595990100871084361834433277876536825877230822334434543292752645035082751036885278769677924752905435163484717783060043423068025104169270984042942326154928313761218792561598055496179934882234043222837656531886125750264078045152954197194195477977406155462426767143364705108681554032166445251623107122601230893710475506825086032404639086714436907732441343984928414678828471479332996215272656768340104003538027202527541843522537228344897065811560857105993366677451985660472200841601908600007880595268182669131384173418199055901058235929020135405146103729259840892444057996292612098298196317512145353321039055651854357550155063302303939832174241638876581418283754957382481357953537641564860019910209763533920754849348388692816112409042860516889724156259375795831898950072924596046798855441909311233298527184462335677735993334804074703720532803470697637002715728202307305769614148719664204255727504919503663230046513954181407251089307094439783121107332766875928037765071725136087557193764856367448558888257887661339184493021191882292709019500146842343636992753199546115671386857045074414321633904078029992349058144656520449623351543572010554182060440262989131818118356521480138655484650393917442276899832095994734532614851533809088184406737269357842931940850818005411125012034574453033313973804469488527709899805696000519141141422794776296903922415244615981368125575139849403015890891283903969068237159676228265437559056160300204572745615279459651918250071334871565451017527723448508700166716220881347145595773312518768056485291054073928022211200328627810564024398003807019056977396529787790988003162006689840372155196243342979928100956086160201491088191150979379290036944991206217653774823719553245806361501300980865044242529347835698514942884633840196508628261926818181331453522710221617868856397961804255727094019690419527822189723711576046001639909088872571825104688428346189131812029696413348931760054804610495092798975176311147402264219675764519848872453240032533025182483077491232525668847561695423934889778461915757944227708558205785410061634879826139855509192493376344196938647024154343282328276845684142699438372354025409393730738046343438282071965531403267158470169414833139149967410908125309984316312073108505016906329319101821105395585567039824196291695207657199927230717637308136423894014823262654705509038419616639574583687476267352525581199071918362373584368718343059092217995449969222330034287082269330565446768367767558779608375718328106825559568543168045747689684479201244439748747005737572457408749217827564247332585933827183601185506372711682381424624589045907602969214280818057785601886552690999279221547127089592401794765078445144146455171727245484769416076624783260657354138944619885837567498476780536983929576326602264723992041365216237363614666403231551854151548111858108443398551504367348070980163062524751019715046695459749141410113086616816368604210338807456519949324586116048711164862799838024812539418990136377273111338342667785325923245333448537596647162083385374122635553089374439019515415756799424532380334083072168419947899681242688846165970608333973371771443649867987671879725126150631972885540631915126103864962031374005154413457210449044670519451569227393667324976857391603105431148168922251592576687809534620488181913512012841625814721027809659799919441603443841823262314480816732189123799465974694473719947344754614472906985885420101625230641968059723722842337324511406540283755263039707842698045973210194934570025250559594698145422107028369067651113380082719704304519247809251178562729103526279169742580684026273075841902146284409178984425616298673909100537002978855069858231909288554409934577175078784925479171378543226314655666153587021169160431720984265232313966065488930853830196834019241368671420697276336719758147787236143301726125552055830024756665571711557695597207311136616476492124100074325367211171819026986473496581301013671137322293076821469823309586260175527216725842477594432158344832516677179538137449644406567381383266457517449057480046505684021118589827064600254984222932072749822069747698062260826601109618485569352118066229299403801572610103842829608898746065630467985022929902092919324617716061603848014225088691237342485864417312671847466345121490808553212758118947482517859401758447229142593819966479033908751036666615416468654700720220225459753480984235013648485749478855474592133750963767821654279141354746700628127674422229911882799813572690737854690911015568104297173057788424763853740267974152370946246394346051216392451482105079760326859866094008732341564235356676663753122763480101077045489051032405795659667413083115792797480966954347260724741069201533920909334582777447339616500935752471124170750635032088677174121934951466676387126373728461160408770630158376001115336492121902033180685003246663792217379792680466363761955836204719574558817255112000804199114613633955520113003942391597535667411367022325519019341764557314694822022252295483332977455605137307742517709774446598076075945466065931031273487155532643890833837027738220743145689445864371754121066049337745424904700149039594657459437712378972800584293962105526750395663214923767298140663500612023607935950725002611882298817024409323060665400972298243353765243779941591851493390417225014699742533537805043621410935772354900881869073902695140166972148362616723323851117638972737557228116899199803995729374603221728192845340933258441169630406238300354268874290211824298564512457952073479846273461951045524256137362994330149839372911108705299695191835336505348442428480463104765220834208593651730965844961302858336548195435981867562202941613843211632576859825629672018289067811241868687845973133871404187297007119198677012931062930969498993548139218759288048398451387407586430276561571473351835440735062553123436649600531091488130323844626520435136290262659333068120511588851043585699456499388695707061119235727571102941969289941876554368842569280638614351303106384443343133961969797335615232426664170663902403623655935749442510383568249385430663695656283813497578319090242770499094451411112412302060434223288925974914382315759079844235177845411287242594935333309857109787553868398175482521217518103082181765051555634524299484539045775626744657855175914891622511780705328811704597405975986458300800561032233253843007509811343101204508331904228654685877994401229656165638908159592239403439222600101972217657362171163599025757529000338660227492594219355961294755185136993932496927866350652388267689411676389089823146190959683386123118586714957572705756863997454271130365918183847178081808417520100655662130476326752494668205997463936880649990764134258089308204090236323835178306322176172064336320110403440994091584051468783262604775680407126154842603468338802680940447930891937342390363864402549244811573907631680266467996790175567187064136332402887050874571658713959164292536144025978402908713437744417589566558113073762968893475271737113137790003100827293871224879869141242800845027251225463527219920187624235080278447967843370236807361439928590481111125419311013509593127276611248889546891945355636218793299748845867834814486269804703990091628952883689113746167315617024100451577570016037783703395725392613540532501146574192248012182431698530353639459885750411326222400541097051949162925743792819168762049267568477748603451383969467990943530558615004279444831120630905934432470009375367100560449265560347274778079078363950451876244839269798731353528434846388813323043979277480220152961923554860004734273095078678062530767364333228241961324270565577945226606569501618926256269482380056950336491504711624285796896829089690583637582782838928955203632239309604204622878106376581117827427625323405055645853432873936828810555823020155443402566605611991608331245276376749383219523349563178625842213416657482628877447179338703290836250399594515911132550505060040551933106785402214013928930774710317833410559482918371307692456979522064140227958467058688577578468725289470075085185004530687570783974666384507360195357370737853567003625855820667372433386238350663573235272550298747371571049578276193935635016759283674230853838573512761288261732009487808731297810994013720875321879621767507234310420409830054307545430893475609999670530062600893958753980300478168171271950939341910683317924294515954385112109091722673218321181622795705954478225361268295095486221723123631665072572186345317410723976503826472612065862723390028195090885740960057687874591353731461515897681028944673460860109973678031561291557189237969413783512316274075169456949086805441787597920036554692634446181773732271670034442667760460949248120587970646584973528807924153156393243441257891779357259017863758256938063425044305458827958137410756022875844478109654276517670622237069724197918021522914548339562562284607838662926681060526376677358438248733782586428850121233292472070960759606827560580289356980680090424779414480522461408019298274453591426130067315399742203980804453750119539726194484844951991140281906600326280269709544871657792318799155265031123235536396866845302430159619734922623522743230536042233756064177773162385607180504055918235089414216126043893732003497532633969317683963974083408761489660534676500201801809501790152475738159051446684042332046251958596479602895315590775472041875168042210488273979524827374967425882212290841842673273540506297473956251860978458070132276611517332515928012500661030784565522793390661195546769846706931144543416538587299991177255340758362673072059819231864158196833440775617358760115854106288590251485970663025662727818819343204435440594264174728744463849708875389243654826954256770519550050304857396719259369183132249952382903951907875007477419288341283393151436054565549927400340005147528601176491368819754058351813010642819185427723979888911556544206132952148340397465595374693176797126059326227357889369439528140371554981256229183602897098844835199959092724761429273847611342739427076465965860996751230503243760925283745354475985587192797451354560409284463123838891929763872245094869466433164585861170878840725956634464887728389814480697593346348920920847479336641147691694830437595998302984485104669711676118031575670430748683191350151086626814811080662676444881876373411910463014864339513331694386486719125305119771222260512927206628882836514602219447081969546319782481806230642959193438031910707567289113034166693906837665143733400982917691778335023511377237807008013449375124805050073219738123851625063208104966695365173928688581397749077190782452979419561688697223167521045066713791920865389367499863148664101700444576299589453219559866395809179418510560086861372835205544642033275428459604284332904254398613235909889616104911040370538129550774681638755768131629919025081570271907649077578436021697722790417283215248311154673779867534863300970984071885291772936383789686704544938022017157424305990922776633024297441704500745899447515007657427829025938963776349353159478320022542432672518423005068820208254972129214056337255815811271047415701853893178293987877127982748865671504632246643855553484887868766413556127610485824205891865197234353363957236099480816817397403119030930451000439618069123447708555149247296678508952198610901655248983577004961920373861655837363132652345982453199510591605837900039799695177706979524695229836760743149900854856414332722003498903384042853124211234021004981624291858924222434957536080826030676240154695788064729619266845275111600959053785483163671245484867788201725205463985586500358235002021508516423663500787760715198561452562649515910555074772785379815406327168195111754102288929837822254533675665190251216823016918198394259899975941176958752150927946376619633608719250944468590221362185710407220499663863587129905305552702841046772620212744667454521545772370823644453357064522514975678705171948005008025678246078181854875838922588816417620490361129043128167483207669348522857760679348464586576690952066100878790643016816753391621152056810844678941591233741463682113883375773261402746246664515098921044063818083056080401370100890741719376629584442169122790893283198267723332127920076809166102683872384324544206867975603948267365820673451550426763088181585580393191617327544295576436516201516644668557593725940971151878369217329993841578827660226709252914746182341866367219311226984236086854520418831280199780334878756588271058702370961302747991323482258137696121704622742249610167337547880106340855148662286995691527162633501789803398273644877428231538148290013432567888322876071651101159587187145010578347629752887433927458182768600045277571772478802098965643852942388173879991874712975874116541332391556510890877525768628661680719210903432650301463542749204474931246520147323197577036120450117479398628215253549720267179089505195085909795621538912180564878996785730688499639032778132294015207305052020960765468832525175264101355065145029802134353365875559161683674942894412148048659982256111987972086693021284995016647952381706495642735155258468462892001418813857435106708068039340064939802782040845015597431112977796802358220439971891827408195202452301617599479708280586003288928867410624713286909469466843904201205774106699462157238511091569237592785586844939773606880019229349147175801631652547472728540411178250031540494164953211474507549665480231018551844742049336821498678673878924957514706902466239047396630200661578109357920463627713503946978434359174142643778031190219547522692089547968878254856457071355666985023275461239882302786890131757321917167849301636501389552913159011742248960737494602029485127985592450773793569081333869747037415739655825885737413490358278143407462554235516439689046077958386649966494450747565796993514935135973200133033720811662891676509869480729440329917612907230111404658911382427272632968517609428418793980260523956540664593300789657415766970867192092945253931552743735282800482345750914485335424049182058302117366937604973842272159134835520404257616992806428547140193685561411027658280857040342325875865694650092023084983082678432727748692779550406611100435976476867865384955027225588542249861365736317396148099893608474097176495471543340623707326586975276459213374297141242070511225644949907914419244483283937913804206362380029700282062393180756192264853973949330832519708731384581198570171002491365252271986840831840478469364290251112927517669939886203438789175172675722174421453857611002834874321905243332939928094883906152940641101879375394113430317191685263553167352985363986776163506611968224723486403409681038585046067296014761310740240074265340243680379210684461534197080808812207680711064389058863421578528258228774367547014083100311384298534935282493585040362345923926688311448077546710591069406547237346587789419248732364370240202401751759704682954025507967730984443179863541346459539022765743203518843111559754635233045235505529285063631152408117678464547141327981340659274673208354528227663430595305473430938175037787231764648909649104425587969404117052776629702325695246367177584587882202846053053054661817220965509818396754440119356702782721083355606446657522809805862870333075787382108211292102103896165231228487920328037665387201958205185618250144240962836609846332252841101574173614882341460287377498491498459046298890328492560839573991405910241206845576248034590472359536883927461900635300602528684434546600578574568725002887974078126995014359696494764149318504962555216944452855745294807232433027736555745610429660883569742530736111303108238000315853873628688492109174918033905482850546278641000131694719989488942095308644650267961007150484392620633117118608612081871573273455137001418676869219670488590103624233151677601727174223305049530615852479196288967594442134623565193122194284407143097895505598588624420173628260735051163846357111878468347158834906233425883436142747938295483412634174168826028887355478166532383215407683590968120548845481718926920620367096536056408987592845081574274786219413671699432294586933049535372296799780048719102034782473949179717197672625388495281730513600892270524308556487450412160335515149310396418638089265951903435019795036622993710706109803283472869345415135967181506297663744309949323695704953495914193527271514187376586945122363671079380115242166244941198004465572125975358046399910239327977083871847534799854360306617746854816743025350911414225363563383883543544686001108638480214792763158479351071062272212328900030400855510346076806651955216865671891813348506806937700390687013762540552466849767101445993496184224689804170186023510196499013377865083234368694437821639202188508599658131112658894829177348973611017473924599639788237708464359325646405544663545645062781650789100006035789584714117881140014704556579246847933898590443560951939559830484119070859683908269696463010331291954054835663347075482559716224095724560789952275137431729204329442145717570211196649273295045892435115422498928418293096801627909990143910006516066465476572330384646243951138306777012416199103093992894039811606167420760338291759306566044008716224229486412092768005484026354604602128643129686176048676854587332459049044581544689760012917675937178287781574634474974431747224571417824959332658959901232631654318097855782577535504957177981990246125777284944635352521703343393134364513830425898151477362367919941816883285991871572172287651994703142482487875964116310081912766602885664731096116466676711893676347212909630086923962342070886293386312556128734065346790974199382881663850602787328004850544918201993378711308294933902544408454452831107906717557815800938675360038603557680639810642357510997331840280685077099666201399383021570574904394911543830905615830011301410991395832903258695837676197074489191132631216409818434725600876621115969513338904625890504021039716887529763411565301637614017241741275415677573385156334096892443014061797497537174425664734934545792469679930110261943376364486675375610876916130436137483304794412259526124151489816998076810184818957800383257633878043531185697199517408404042921573207178938770895931557022742728265816149740801332063433840086890238893918333142004515961400898611215629243641694725431356170181179200559592854391833343694519194514317154135007420063905060716765819058242162028976968440905524544700128188685814354954542055668983878624483207521217410948736474109157860409910258555863940130915517560027976586538407568236397358347233648255335205247722960881930540821053281311304880926255044062395575903919443171415265275408089529865726307163407322439503799871488151262446063128138524107414359794085766578525169438992746556218058869206623250449370292128851274592702137674834292777741271892215540626833008286009017921875382948629150162454072477788669988900709805056925069858183739013507639436541872329303118365816863336447793290070785745106113991480911099712792943849391367015842418969109386238027257645216678140223613229046809772487782686418812287799343297670716387056951199018963230924589999021797571313451742593603251369020883958608546750477732292906284648172031950728149118009595051258134475715705546784844362377691481917998405290667715479291174266933488585670881394734484862143811115954754498528040574225069514647200842462447229932157922646721788145206482083027693611921738523678567409627910852342295609063266671048028819226371390907376844480931844498969929310603687009530872724102621367887069726985697340022803635047552368800495586973590390206919312830707106179135567674215877257598221912943186457454772051328945878273757752103071194255451752885836334459358005524008931209918825706554866392314480862374414595305590030658095292440426176752542067710335536849552465464357701017897964163130386749523961082890325772448991862299651984232782749959589340831031293267661027241080737954628188076342698617617033100934680083065183477132870542549962326032501161928273021299349341397996342615126485063473483275913631786824728944493214660618479650573040671874828415191474168416908972295616067007281977661083114106186927435733553564627254143794098134638322862433641334789788909126415318730406053172477381035370826694106544406226612937662336325906138381976319401303989855820948209539186024819909896648627135664987570149795340067644785868204910762709697757054915087961976919441390159412568326794263957901827825455689699680322317815897782256576138716770132148021155272767311173416531189220384514736990231647764759388060160755374833823285458259506291023936001654473539429828766820737121927529990736974408113423720201314234045052593169727755905856570031320224654790866575834512665456826305546193147547187391279239721184692177837620063262466814563224968776560280104550069682815286575425982348340092647101283284306430256976526446941350270621458319110491793194143493017703487026333460168710291836083741253275877631540223039562887768447232803021429872949464749395031464918041335142023938815248759373715928383266003540642895354169850619922353038292186104869182552690255749889319778472061991980501797226224763718144597964137138462079820908395882118704801556318520813430516852374158421747814580115630583117678770897709425691536078780911362843548240228283945658041952201303119772279659598388409363583559011857427044826650563438421625360498340854389040285430492689930661353029562440020282673436728719262079402973506179692541012917537626608253968221806216418124621731189673347430942208876706063054671699631418215590292435137843643506322620931206801431691638497810122710715021679247205626346870673908875675394424482708382508788265356558197441663577849241763188148362164412222323635499389429907840921650996112353251201103142338355065493889092759611053693980830238610371304756676260555830927849435785197856390534743267450560490940770859188651065545300819826445252817408774654789916151163487539306741930233427583650496415686353883449297026988302128385075011730722531947412188603060660866565477142449026181091509558307427608294858110352011070330305870925795123533892215724742478567167678835897376761772117513058693433553676490367437388170444054369873859392664944715350381525963250553002049067646244585226052139312196299705782550327045779804485895607020990215344669537068428452178214452386671046940810750616731747856971897942787887160528345042902212243983433906947676464131458180704818421658186036693764098943364938142679991971798152335108415706476165027604538632999522443033893844869869487964925415099694766465468976921648614239235682753185096540881335332360315018454309181158979530096088238018229548364665073083461587537390946753112554261080409659275271456272255273501217657824322012822173684540188340911256369605867417354418830302910422954093121391632516652716281214020039348524629267702533556780132121100074687510492729215067733282463405433051464110169458015239281064871651193748496284714520592286022164309227073291131485055146260876549103696897085781125139947748938328842659805612121831611530304191551869772206964070517065583074542955680205586064791985611372083202139733715897180100934195299240863180418622996944159001484453489862067964505307736118399136114400730593042057496786395373172912778358482156291480030842989176364034258219775859099886154229150648818548939194649244244270734606536628241104380687463464244524892172700800269889684009770499068790618994349059987912329939316865429778734053637410860411682122328032144301845079668191420237115246394822017709314272988455433627298647398360676197355206465441486062065827311631505717724208876556248722268292666020371485112146244149649995152029735696346895793491184861387323567372723628672295693070222728261893624209144683434264680026607719950221650936519124299129890949673488691609975570841538563266979992872310669681200387350435700139029251245561252590033221973074262855770905192682914207816015920684685189496026803241645023217978454935003686853112007439987867535318804473478513954317739606005536111440635364216181260212638657309469059325590639721949203805628767882874309190961540686915212318936278924987012453882907430838160748627389678774537823637094678891160341754045508916975405922739404926662391204064685581911120898761302214445697256862545295013041121719980910669115415746874858495998661990839837817126331068153364133204083616858950592515016827684752401634734415535782918949921385910911224831818717219486883865713040482947774244406010996901563835237827612909596748151072258291813299828742705498735967748422085620675206715994218091188510214643881536079623454150921340343006129978686825796029384976591871270680515270714186196057390318885128243387268376641020767175712661092745822335229051299485282816135925469906691601850275940168162449823038608801382424988306996391762309396134854599451780067107822551932420508739012679549784401569898875079123165277472128947915317312845796906128837001975189510916690850679856760516587307479984144568492492127979028812424100884088477837315919361320454826303567474927756541385599873032159054076295143637885222986698185149670834860527446526449817637532110292306259036863585679948914924880896041265110733890966344359338441249583269826824276010209896594546047736523987118017518651367339339449442676775423211910823094237289686802203474395932486237694374108666028201747655631949510872258892022152498032458392717242795866773783806580166137292977711844665025011525812407307096301804069407496556849930872630421830015704120137922456787319402582131094546109369974922261858374651973232203681278216797854825403853579958685209671195632358035567447058723268627928206036487179366605594411753901808983779028084344224796870885659527161278836340432760800058045094816137624175734203394779863032236738284257194060583547437838904464154065790999931856081243084635339679917228812637887991600338337885884554719823167938893362837773206411466170259542085088518051290084316307150433107539545541990796465090231644288344740687197189354667356494568123543049612988845376092977089319942146304822076602353982432157616254876128425412106161133133648822454132448975453566265349142408224913402066175007211269430612496634133218785546802945912491721746410381867136215145716495073219848969572768726883643110536044271571542891366815712744283321333976334300050812739567187482635046210393143243199754919580909613656257002432016658070951887305899197870679368295244048534202386527588450776292787146342219301500563804572513175940122856113554368542010818237158690133941061317832929792041099132745410547130717453300472338395654618716344570340185560471813815780898159470368494257868219263636344774282218605964247457947217015002581733330227320473865732153469489387723270055569460064750620414873316115686228526907416880934990174691276069271989385055648400243370326559752936860238742696015916450956508885490208984849887625009506966763593812316977903451178055406673492287980647697339913892073568086405247056322186738247850716446114309809549488092473731800719660589269647674380197026822410328865611136584927486696312680737684133674344484354915694758172853359440100633227523057839938753032550721678007959541067981610512870123532518904815935617217032398625299239141178571556013166744954143136232251343090938117138972440195123082103278926583628502402959049404929415327768642359797838724580593951390567955604890224296007343177928261847519339555645937150468756199757974316901535721440668758086865545248500482735713085317312441357923209935819400847803553026661789990340016450047094910138334017722946299265642334547881046056477140301707861814478111616247962553239244068009690117909228513527314795503645016130130038280678845335633911351731410242678439770712448559939264307744563271909032088393518523660330523699761313173348345268257728496057439167155395158529563330081941842265634997617320668390993072216558028540545869711890122196602406694608294227814321543243657610175020591296018436712618332914534588474962392709765816939404028638746776848598592213820703486498305225048439168577534548195511374947189521246181415239902153365851133525354141116564403339910148171603055960643734286803239100314070941113262326323998396995376192271369735001483985838849714481681517149745907959017744927744511130627284201316358437641792093329243167440055461231142916162639760706635603860065608371404383030041343474639895484594511269703337758329055336412225359275249734553483337232586257096338433420359664089728564431789587613518100942754520374008880107278848188959516723126211891250019208737338613365013734348864042522520017704620726688200704465618473896823556471471078268263004521490432410553635545255918421354196865113739788666309750081425643198474037759145878959060984574260788578632023144025764605246372483920243154704271119003189042040333817000986422864341807477777798344255598930892290697457018720204681829416752491348559960619800989484474891662876041980060259700127365693936297540932085945466756234080461501354582155086320722660389340137673057625340655516981527778559929988241946426651676877611917362227020922783360525077048070759071803436335707563828365968139953907607270681813656575919866837510546115218083781191964755409670958249560178282456727368563121850209804703624641761986827177484782224634903278108854631415173718143297928832562499371156297157373901158363108704486025103004969469142583869370651203770466308242164894433580005968687302148524928795382422861000736420364967914869424254773064472810425508729193419606670525645064096087900244040642473114135660990065146788809327913849384648065461017890562764563556445267879731766008564598590457594504529363273229140340624093438516314025260021020853250028031418098375233896395830762373673342548118934277189269303398284120364951771760100346751920815833829363212820663131089145602014822523045528829442917400514389131182798098198484322902983869628251487394458203910940653280188754077209490747861179157700171903879128063762366174401440452070229245232045405762806965793085020398121837840206720250120266752955313083494353471936341772734063602625796031365119785548566937284640420468489277157780434586776100852896073693144133464873773525015924521197659754590876950206056175781935910774036258357653600808937653281370843694390227229865322218288437400138825811162971553457567403214986097554286886579874369009497050979860937702783572233883314539804939892101714335826189674003122527997303364571061607284968264026682347704558301545855748271713724358470994861372658713025494024495738558899660535370903389251145405558124569294137888271651990004376107967257280599874820479895678559388584994834696519493089781499727763473305857071790270935682275763063930497022966339552876337991307858593142078113351114320121026019873042167062601435758411797707904580838088498088166626185358835592420063053024643462899230820307080649410730415675977100775239855868675945731744767094556842689038531128494988018144774566505096148989915176299241642878000474138508045203295305391840976899463199695591278676949319592733662054309181205566924621527407866514323526592070708678795586416860452775357502074876714333770601191294031585743107677777952135902613080828983248839483209499884568307672417592994303402094399322708275483573885074199171369400498798586194234462796084144473566520379282953170163351181530293127230254356291055458639577778022116588666112693357407294436145574905637200712825448113557834029016048517605243296981355027471470526354293526481366238869584898195167904761247474468008477258871394552736710887847508425688259839636830667647664513308234299538406371493965512602596412691663955329422216277976078749552917485688421824863746324747783244929832354402571567607928674259528494338989676434365754823075754784033503696537687365498022398780119203544049128826835941953971843647255409053142105566632073204638848382768379261055003805739537940215136413662496749353732410440434862382336249204953544285790530654527726507220346592904432022017163242358313783512521095764152741244657762616754360947097433564007690414362218068299355151091385565737341194890321845622044387715270048211012761208140782452649886361038326508480852529514952263554264606718445430426533826668610066557716951714429565559054236819339387175320386411552242884740879638726559965035453160178728429959062489756943146572532979956564427538102595666725587611303086354595086848420817023090377601073137106234293378074547508237856054947987690213905665585892860091990456026032063782729076155397038311018008449011214811927779674839102728820575597820535088346150021903483765764631105684014250421063783316509790934725949942661704520723269101718680689315989500806239975869483897052416122301717289403904669984942721339295681261610046509028456212675739414392795031958650235048110471685635783540426485721275402638812871946209203813254648116170313586767106436587660551655133113317022718232156877362195848216856465284606970661905439540140651063097333651381196333165949030392164270853542280497980267149118956364251748913441214263615547808921452836708221694025987112632114388529939169630480481789296298820112380749013052942492948016114353302390080670657213781679719856861302903012993994451249846901001989193605982791697305147594346496028833289696608150563450566093781292361334905857805509456421035309073601958446371216507319820156424220132684566877418323310247319218685156434120327170305730660785175385097069171707917252855117436278713016009522089202424050305756402153727369592667997478107072793723912355777093468284756010763012791311995391762818615943038207783982432617319663133362063793496768750895240236424692319045416738623583604828374392788665477594859028920402019395937706567321194909910433528551798714035020307605578201914838828809464964820842417669924567583122624780703905576531412632602429224362037195329185547180915964431856852057882350103091076128060445704425147997589608880281259978623877435496599049296732208449724434582435036897803651849099512142294015669174534168383090352847796430676086115997636787204955057956365166938345210212057124671890236358379083391190802068995968969901881223218552528693485736518886301604529410281797360806895495240360664889446834853573711706079943054719216487594313141269759525166102522909575375509509337185449000729076761263467652916646455803715330602055347416205556683808723310114567060821971360199116696011772653512414405109362036010017584053344689875653490024475801849902851129056036281543727967628831238165774375176624564045783704964856909042818467414341076607549841146574215334379628252377393517758770399425521318169017399018616421413543927797334708765973694817101033181863768927283763660230192059197929591791482244163940318041477900282857125177644841059315644675363309241579702126264813042808389337706723982286543417317364814245629661807931369532509112875469498015503179945166912284138446463087410279878209558773461766677933200636161412998361123878526984496762249494601622241984818828441759725089650432388388267762115386944907223140800386409667479556596033658655008345015746681003715498121545591770828552690587827462680189548409854806477673225930833646432666789519813230343847805542571189332448803371027660806642619768000401457681926141234214210908378826034880398715896746918681275950354190406896727813951321988421183256109487473527648664367133593683737190716713615344289207252730570778056160659161544235891078464655473695634397073722178185912301094436923139522030101136740734570595261330293674379321204061599708906812035078623541278054168265823537425938569664357627109735408652303333957492497719953466625694281212119266748886652563151697066072400219396266842825154475614963579333658452377240996873579532275919009797415517213348453335786814228739938519020936782740215599914204564464383816000999065053718814849381608655035722706417743866297516789666554999878895721790262309084544806465185693092556964531722410894516454267967618197288329584139351338445960416728545739914150804959446613534398450142761805422096598486710994408250815132392521360695106267337367922332214259952302229364090476645961545055948420488131144131720464692670497597490599351169204390276051574466773968708032478040634377784167250219888494354098282116000727729150507598693656847220169410461894445826185511600415494510628158872485140345190055563466615244737496076611357787483740038862938848861019502812807817927450349584057529284529838909157649132473101056333147813464026504626291567537790921372478289700319632596891251330215246561205435837622686092820307774168700459043526358174946367245517897849317506753904640416033638472405464980750039300245766107146606057194951091402482327352669122149601607089722072205462881003873076229689062152629711142892734633921437857583816799570965129751212882470762293756572134890623618601418995950002939343301174633003329729078340263825278379605300004735592754684871892997206561365337515374779219624955179692200855731479445742882259242287677732128859806537046540246199387296499359435632302131108482424950180067571893986118972621824307783178334458570361181609413976344651627256582886168782130134255890738184057342227527909440150796335069630683158584259597583441339316667997304805147104205162135621754090487773302273969806564959009456956985365843208356206159345292542418929161730522209793524657122706640054135392126209537416070259881312679566674617093237174052362963196089365298444250743022804976641640382829257137163603061762596724995717615369585248664493172010960853457234236254503854441441271638476726283333081895855936476006163524985906328874450325511377681813053346646699501547749324209856865935049010621141299141773099804599788653998555997208865272973882165087748001986686031630561230114449331935784076334183313859772732345270212652657729626488462044050323775092702644091599212652486267716599659132457154139254001538116996614014497922059852865463119881458741918733755185509581187101969241766429242389375494516315947724531101984145080087615562644078821720935112593426184468303521073794000418382893605854407065172644916885787285452650728104911722412941522346848448989734965331556939326855402116655944907515310397083246234459570196856432675680385445193586873351496819597696008201253799008400105463352336418912796054468763570371065141356837155124483618491925094994141446246321784596766719116487767444895994644315839584871818846627420278441899928803275124496669648679345894132986023303482928876260637136445807371340101726992400314099962898759328239973248787138226525474190348822177498195455707963780042780145879194411890770714358011030266245429362515054346165151986079342385623906645515459086899700987275783385647691033468638899428963619169533138310635144431946929978952150427343027450548912822404656751683738409173741484373181971188226411967029514001048449736868836048926288540745371246015784688794778131708392027701850083959940135078751064535614615484503534678749015340275140901834645675419760454833086921693902489806750922992294071550692377787826669912301589909380813372850555299059934716784235078673905803655389520181114771552751613837266566870550325145683158295906535700608065726990227214337914923752422195825551552739047664151524230841309327935561940500532444145395061094916327038715303701528100887540809332947909865917839654089741191987143734113651271643824052441584288769757149771141471427950829588702992792468332133705152675643942311350262877689034464663632184445921715758792411319963298754131201832522267869678996413293411317636653889683205119163622399637364006506242186919822306441981351532197319859101563625698621817485470888837822021617101491243249216532386557690852747254785968298124948068606644449351918303748366550817554225733526851403898786503007040289933438197230196147340864828347612607301982226861441179898436755838915900846999131405413831939181656430884349788299151717429748649096383896734306517121736027545375783431135217215018269592914932278747374257245721360256626384138952626279302130009966196300323252201313821884482221538525312767676304855187006831468403992681854876538405638483192100247223191661009134395076785551383704821428491510169897533907897563233992177890388047633681374846516892263571623071840641566324924108669239676012160108144560923213374291457844880612478637738826410208618024951305733883694158508782319709815158671170951738802867958015106788044933902480689099052919532844669682882545529207870809050166148536753308133690700480133882858546165406413320250693835596317424365884064726157576009934784114084062998236648235748554353359050536126274282001878480529530447698632263662782963274163701153111823408178673987661072812732577851392113807681541894440417632946304900618647807598912642832572998735287161277418336805175637941952440232128885491177415065311168183622698953190049592292508376260805003317433385637848674958223105863188940739807614496920179175139335329885885343364499791300165712868099995155763688357969034499847234260419431859912204658274956441376367770216114312700143477161201646483213292711825713287910584135786193118937459532363102391270889013912909166527192377458686417036480120329532875161201291706095927090777356167401939117441244712460141784967972824936614589907255008243499708909680963641689156962089845192562671934304717145630443239981556886935433726230261498003528371665135912169317838230979648522206285418847348693935943843252998753765119249233509919666893106839343099291774291126087972830433166387584023702201121723945611447336541276334027058454177857748524863164999917048547694843205312092927399866107526313197643376538029522141637423602372218506779113887258057677755437425357442389979633581971403227793561397447071194611416517615151238823627905648863589472686057334479728309257094391377951656305853890416816898769258083650688250093611926107891124270988122269346853198517066371742046809637665572893641713249386443340528873527902550868995093761512046498450930848209464606417794077592727351875061493452818176751710845023652044236776815132674319325109519200587674918493027769559654098122539635771169467112606023606943945721364807646499016637843748410973573009874973387215572695976033113712883158380306249032383304861952114982623586673336359436081533096204352318069905867253166796719897757396719850563320391627692961278450432509302784936557570466366500504235380700021043379054365452676915632116230708153866793287528039918102228796675492741413814600656548508777948994478550508894914805288265876884445662729390819614400683983080524037256950641143899331811663770163075193044500215661609123977876500738743398612137767631637994991603580029425394150936118287792564890199706361151183343773228780513781700685461893977078002754504705746574409611518650168872167815808016185486410808986322233409912474922580811185326998795736203036360120248633970529467124019239868886269983543109200456227916998441698832120180955945505348853261754254953638515063118962530921766529165824315900458349693970687658654243281945647647853735525153068989109796668878100256983906871131921425419886641928666875453772443176144635415665762871405535364287851801766219647126689962431948273100939741710425905524374968733303659687214601889996692802582305000250494743195788736177439811819412948004602950542736866923100793833552779750038359156208164728629951618141511824304864955870476420387157706452758723677080818059040842352377577575400884687756111665813925119356731909402096142890110964899571503972071590504247857829641913981864645698069003883646798367981012376946322888360915854430104942614876035037990344177685999567599330502253234765254688995525806289317811721823163795087784593437287864151446387303443730098248049249554003322343437805888464426565167111725408902425165680743457602957148128224094784605585432107534563821848048375625891575170601371468196421689717760549530199246953023901996148262601706284818796357991239697001594441468677531856458312725471743944500821629828304937569597521339743912031065212616962292811787214991497537254721293068703850875650615027522642033730412161623496397880994352708041669332272183593224279111657363092546649671249929614399075000097635710205091352172102674878381800459683310699995590778255464891283674339451582478152805746103415113435638105663770354879809403265266548458248684582906755643586324591807534607758016958399758064881377043434130105968843929917931741747428671251433132551775956673912061135467364831151979354208615472228327585604017733891732111418623652027644917630825994309391671301603555506639664006376991774482383984045272776417201122912290611855951275066506498354602961029657475437590695555075101859350758837894692340808844242104044351784510184494697766022432572757633721382667328318485104191372257279900302301951988145702121716572276518919027375580323980856028541791086963303805028305825415520792215467550998816607126379666906266962228804105219437555359934786322393330880742944031636339297431845742947964530484812667242960554778937241659254754257272948183035852407989706013833901921881647311557850526432810671078304253827862550735751441780943794515208769644180392945053371069580028806009592615542404295384939223669282518654578715415505437681721619494162439802366970176458516822418482349498561226122052594069468684335582880004236042671649205198300304006390821604948418223179378001878971473265413916596941466285446072011663385275508319000328193491650079157574254157264221073192131424033453260766000540883242243039536428517010190719596899622216857242058270080448845866160085246854711766440337454171697257316643571299349388718199291759466318132864866184797194493997567376889688942187412505181286522654368902847895239453189075978183784293738692711233245224027048550113680713014991275390637656776195040824729457795161472517833405829363143893747277449678965136481140700231327461989829246746688558984335554557604277573762760912058048480271999849553952672342626971751222462169690127800810984444255359151750836095039154280956032294024501253444800135907132943742644076571567194141395791922713654100901617029910319986570525840925799843414159079094047612707383047817895510947309066257504993635142278626507467665960409187273722547794729752121567356857260978856646457541013819301847821233651569977226361516999711623081473538687445595345401386655999956253624683462963168340979755045640501027726108378785182034937053327921389434083704172860535162743180971964185158133463861786405808528993261626747920282290077980614873787741173358302761312079602560784881890468622896278439020499837036853688102771127764916480789399444390409250759048332890872832414244933523646308167981840710198476936630553895402873674490337398474907585950356060720035878450430168811021442649884729717744959410584520038230125316607870885990663037128041215289078551534221312154711394784386313780256937275762215857679289152126300066971699384726344308284630682783195321247975797640301436814373461526469198950210342181762593659784532667602506674488467124609668661730097066252450176922788520569067359008431604124592847480566894697818276779475588470103788134571631881749442899892987167278685725466553677372831124446176730408752350650543917283196198305056380900140711890771221329209083766220493049679457866788418100358637383427091353528093942551819807934978546448024964273686684335521670808965836820495433367410868993443622970414443439610988612701962123616829423893580447197020973891992082302323146423505671064991136035773195638847191819769880710058067038705725015301906153585559014641266966919236290595038548687337612191372174427144615555267452282574000580347074835030814855107153993891683837311092750205817019512313117767785184487776872680421393928603421323899581851327766693655981806455715585403801215929712677686438428537188809179099573080680102254116516429854798597801200530325322575249974103543108838019843220023575674082733060839664255593659517583051615349713443826367990287717942890826604259749491147707142297025251125860603900529602402545826248325755757561216131279581281215685384085591627805709293724661243672058886815767907693035051789575639340031112592979725357775442005699664022021383473566037691695441318906191606144682518131601766098616772320663497456046509728826595127539727333686941755084872178893886406183984600371686896850918522983446577551641562981490543467626842114452483994131230385258051848680195708892261883252235536436873645834791469035678722598255759755960216814522299491973792689788065727749960206183123619125984229997445917931919070044699554058436069326731670892612617013398426718889342124987556990243059505953676654027533075503094906893359337655573217538335664890410728780373174267309618140745156207212598314724574830121106609479787962949043813324270611655269733179812220467342712122664138192914732789436609182787888276414614697642220502911444841844138184923763527714914690697433608081450429276576158754217052493940928386373294735778423424077954882095312623534027550350571028903943133681481995153566109244774270469991167237898955163904637498396603242741993113944290390576059074155553325065548215179292254764254508718962213113516699330454312000074718298006506387389892625648905439739686679432127054939232744427995717336359106333484418514695342981280896868740832375408026260594329862056291817544122229001840210059258435570500116263341389111647224103293543067992468631553900279513923299722276621299513099409795053020739055958119151243330404078852497109253724174743013883031797018441085704513576815129153624429492503752616110118373210046518961467826972444261780434649844070818194648857015566472912494001832315747489212272150548567617331055173286755555513727525722807015844443069091168420794485271927516752388469452014058436541244190068829957459005435743080561559465242288193127203292340924903397654714651811131459251905725804935151124366891654022600627554580176117435281431489499916146718935238144336846404276729538716752608133950987596207785727789249855982834823289177208117777338346633424188492279198052968309263756731847097048722337076247583698147177421148043213630941487254781492630874667847895245556100534989078888984592118410223597827373165212801974854134198697705439538874973901457412211904805390085525475177691827060709796771265972488441968233810582599435298238267236317342426715578296460105068310046137927489065603076363259810279366112357062254609303845922309569944746489959435280359572812207359002148467487609628497018798980716170871860113170396984354371096843517664924795544202742247063771600035752294276137432881027737424376338465481823242545858652299370190888474776740026800100967319726684955864544676707987877175135398088398320732770178046249932786188807671330925433892842895473399804678267914598196746901983068398922634392903571857330959662853884503112265863257014951784436813918535839204296433758389492384812217565502103554067105827726887575137843597979044491452691790592703508814671877816814014900991554621690142569780350359587247391497616190334804564991698043894828487160573309708072050466548034875571233312222486247330163998671379512788679864381025542560425357927516241316245495529731023645919930113496142952218531698295710406851480382213988837696390758142551957119935917111875508775962547737751359233870322994013917636580370678440085956246876399514014714572246854340128078585643043939470699712197594064592144290107129319140574265334713416412866451075856458812395114011779550807321636781016037343376015731556349255659393736716561935500458810732233559302448256969965558388305341318667616899808566682827713235687068122625484629821031317607718012390587255347242047415200161766602180588246194966487460645638789963150712442915388404232450756032140477624258036526092051914829101027157745924142628710445597292699956501128606688546274875718766506696977960282304138110846930878716848357909254627803494426425458612045997199608003166303479589928945632553125425344317399853694598058360286745185081053313047647528537628745709777767541307714243002325347404093030694218291168164390391655747003216588110006242071852475797469805276517097274515302509461865993728504011681495778142596361240147809683786888511251471276223179153314870448712057937765503040166429701507673885504773832888178731212460074527612354176665768817010114942899257349101235646676396258065112713396498422824502730566937089237358164609535611643437505650299631516797453409382353289997025627180216562436255117986972162498323095658719682960254668065000046716222402396653824185505730658144606359055955496419820113969652844393015739310520628308914921806342871553537005900350470864609635410978841060965660343653544490617007078995831805614533906504770527431566417609721517919489283364812866046083530718819480534421773042360408411915761644613091367593152863992339638705407205479884795798861699621806442015353531790044765255822727670645936350572878042757348558987682966892335724288086806246324897918958416944579002959286322888293828009160324606353202382231247377367874061794090104138153305761028300884886494159225575438094606302586267698917318461563936799577053825149341530483493122434806333316884026997670244732749061897363345433278280820774402667097781782078312085726344560947085548521426584891018495735031866421748229856734063285256420887466425340533950450231027544934290191600084415039849520215325600163927669366477809584126560429064525680617095585204187128148134743445153937464754963442205389261099549442891463675389578760558424841902583118172885021588583788068989305945215392813746540887775361004235101493108460765432909460867969100188403841622500908888374112448306461237752331765454201486843335315258075266734685821776462554798771580037807371524124840869256907049289006667811402797916365374333951451614111072264561762822599124788490992848729888705298083065245993551737408241133677579727233568268033781163575499834766699082383781455439162155128563855768188044803432132102939421624081354802623088222419123119256612052550161349899775372113033318398096362166247186330045413600338330530579386079021129320328871749951452720450623958005426893173481835408084873470938873886190102136217565025959113514421270210116480930930374941672915936245687860034660224003395352251424491516060429976479424234983779611349866591027178292993124652842563039824406078979869734206039517007531875786306161264714500100320811594169604357882471847656444135133850918620897857462180539472705749147588858463426651824146838798580804824882080550201928877634902053551585624001893464332426863663411740303122342371725194337451401469092871472905890150615238956228461520314617026175667585862095154776828356254506431626437458076071417857800275876080483325967588788531809595965814816008065212981791958439859252951844584692724664770760915168517463856471876221491932156230101271310528445074810700265024464178587243567799221303996521838279141848265281625104614721163047907822420234842176235064391415298230055436257014763699588784501440513057481801186730872375965246520464350934313039666558562939251568103816946666203136394399173448967139829815627411988262723510952512218217047506862533992675377978466809995420421499113435407010220569268199940425166589339284985656673473325794934373118520489614803989074911035031394683340777866936873547549110776112694702987821125647656814915666919095529367320559577279295129820907151577300917884779633743002145803603144778906200771554904764805424270513167766893532669437359097224008315940237583883147635421404408604212995770165367296599020483630577798545770670281905871864830613825275278600758790702435874381211840974392908362239891253893167318426595596595484958814557352731191074691798283457437678588414439809369945323260657259969758824219293587914543693491043904226378176755732249873147569570134160414988729796068385741483909738944823408130109565830165946280719178447982633284555363597451218726033253578179240687001068616506202782368106342928741450813730609548908924744506622773308385268109020908132431315118495335969689890391031708643714328426824906481266624069267042133671604705742655313824243422085609793500650141268388679333024186546223074720253207178938050317199178734911226776218997084782360811160079801956068213562664092459514059419198886596052780459618987988978124604450752043911951087425762535033742853443599668025487721129385619101220742965112088842954685544392519090409345969976232251366844939593914310582200549776165119323633557844773870072751670887701833608973105333061674009407487608485728705025403965220624984387807914212329203806188310481723210930017201914851255372112309151571901612713740653683546403459090175169190773763122126257226586645496449591237496183719395515196650457314903486981404538174573697589822751137745630786723562169766825239245298159046756218528584558914530148222658405359526390985393717661971015878387327823837558472442882536372621081866574074402013077213982940343245984550348898469160893504606046029720752430522250508848409813445599990758681315475222046561457662331404526326965352792923797929373929190374869671964630718060724784747396550517097475096606260234290376468444505822472220213238638855714513234749820349966040662117777729786064434146736621110648053316143070546516482946603376435620929127032409021043510275954039706547299792721089618396731508470303622049840208056686992252465953583737496013314179003537005246456058694776746889730944136910107442020272238575142052254708190896349914219443174041123748517288954308018457409103199946112805564334422622895793405173650295313360283143297024936562201188073837965968669385630403655424493757197421024937405701936945138482569860019532151625689714018351165254960063601103120281995349670461609746208291773657299785645713069651650016227778852738340725983559673970824046315259176738042297431785283156494449545036956401109369855817985115027211915917638004829658130789859470397312065378020322760344162973296980120590668246901430294939952501589890477105080253835157158428051781526426400657458402791703655628341155199917788499516885789808814050968676482560815758716892137852614348240198670085959491834379968727493803924399001240892926764545234221922075784137853342487883353547493246859780197430738916781429610504444966285797198684931704497491550675521279111615838057069681965725948152986672133352580867678999596495159606109888930622886966132631217557575864832627968571141533502647214079502359859585276482031363986556281374476129381484774020225044508591218250956247790738896549452650203707851005311569656220298499374750861361904397629959903131190080431975245809400009145582174545266258052740399813169325700182768421722318051406820050230929661772701854460037043301432345251646866456105217206929060367202733353961577082848882372881358894045344902269945387687846572485781928755820170263348795417825355455575490682500699797395059504613420534309269819057255312303387133029128503192281356963960128385345521159435691409774601581987774123819889586672711142729583108270898639204621803453794556243397185624971271409579259619230781884045355529797774221068893673388554858810722367687848593822515403544099482252905928348478013601350091515811453292144235396298755483068015588531659665633944781862223936580697312612851200242204741143375961776991063339146375805203581547030622952772170351482123853049326570584461131965622545238528606444933091816747127236972720295002626694938676067390723574413268607147813063279625225213583451461753197073528090113543146777394534710240060895178155583075721182150799500558837744547319261292538304998174304023070223890981607615311099288865287256021794988663396420618209213160431768011778154296636735078724191834058059780194136413801628579298183208684244469747609594675465935139271920270860666700964469126425789697600503752819096615375661855458062643522949216579083498437925743197158770646868200181823204868998256456334050138496655764029708344806187866968931216351339668783136235117749794199305482289866190400647154359595792275442777794396672633729746627797753573196084347249181190210119294392590380260264841748444782005168568430346614412500612254411855360366968299480657213953513340788692453270591291498280174112107188413426878788829800210711931841547690632321330356647042801998341625726105167041311684938677002775094988441085136931695644486075931708354676736901777389429731545511459227701110360843055771824121223403292822987443986446401919560923000143949934530604425799693849177239781614945113120420486863791675253063490066523958044028984353925557848458072200332029250346597448132614017337334841522087264985836723648805643312830469305304873539059684897769410662489968164655101825562769089233065437474773251574823464207618269372020011128849083740841566637879049177157916261744725335692110279631363639619333830316909605856347865158364104095218542189253938453651900094568218823512196785349129074727334576190879527700714534296428857778919797005177373318942564746778705951416709501512543632545858505909277772235744136906107059254179657940736448940133684621259740377694362926710786480691656941449476496275547975269975061123929065905556029980618277579232119869045159059424907676014494433021447538110788616839417362682473795362048578667366194340183753995078873570769569736334890609662341520330327366441684091559726750606818691954289729554967800742088808731999842293318016422639183011407959704912671956726619387623534230677837450373992155604973161965453791841362376013666098734374056156461634598523847828523319730791370198250905853269294286401288966155623665336680867967626902193385870094706204085027017894505168178682770319342784307016451931313911485790961696844160662092837320833387867641488391352989258481845308669975884128896586702428755687731235900349616499576082923775226893655570763541340826557724889024357548539752579091134201798302611534745174893942282388277104497423443592282036621472973991367403671012159709430824875344769801066976990314194078502080100063845162203542748953285695525801669871401279094554658446853172976638859223272280239229572551621704395377986809188708511955501483450065354205895881728190715946327770613634760904731651841773200177627496686192983004847842222516625268124106031714365194567283488928109589044695107654103618988534832669434021847931347638061335551520236021763656182711315453253152483185016002550353002350998118745684013978413245041292489951063561883988605939985186066266983743068215608935364080372210569221706210654029033468957152390066799698439819719944948847363799265627137914408554512627737680336924879096474511063094304810474408259752902764930190996182867206680083812477082804253485451549448267335177099158651397207444535596290620297896514822799643822846241004949253809663171584947464968773242941714860117757925464809222939256348473448497344768767897255186768445780419301043588384787449847191575466125277421065198340368876821770985647989749664179637585327608894833993789803869359050038859150041822476926213916322211511707329740757299950592161419534179545395648258069575581914101054740858366976388974854435670380887776225342372523668586252868607011120737664441770347592390220540292118336359207682874681916357344362122584685518491173782814989331732943286878667341277094195061406784309559634661183009377235593155008408188204299011125362549515865879877793320160602302539963958208885785246406838930603148815511881851063392801380688294775533868576870062873818717550962023016789082957729937039481235532251177306514137747970534389379645194776233680444566103772824237746406531747191228550875257012485553034958425477551119231041741260896041764530473844861849598768824455494974223707962742522613785956150815270717355225140609247146628770765759232800006362366178185182014661299689732045067019387912233902801967928485764215175360503242804953741260170275740303053422716418639495786000064599523927669172889510347832507317813674423737276438574252177536186049961577845164056212512007571126869254391270548041741306290852654801964879811114373415755475499917082236619650715279722050896985205136490535547278448297207107814574514568460861115729565963175793886474842463316376564944811616192160462873702904040975367288613066251380909350984914309152013685940349903629793136440331259011869648801208786661412089289781050701755926315932894759333535558539615357374864732778846929005148375626964569271383010871929842282561144132628796930855435148219592948067080592226824590669598704980565202263218860004581338482133838010714011937050319998655891249460661314089799465045029166977232883060195184978556532435522347947617679257654458205266051679944760722705502604025380693054988610650921746556588887301788838412895999596591593227930457380841437898235779781221663915400107412133609571689636670057484589520547926161961736661796689247300318163307768429123981774002938069046482005059305672109704707235857627655971528668574058099115356058690572447224208349859427076514578043398793416795768137963620833903950832934495580595363760485462231136251679236438135424774841948043589332145988194213605792941674122615999836108550167244026493529026929476241342582563872303197435078616064617695101218541063220308171661124148867644033887297576584439522022196100737434541485089168713374426783595270561315212526207386933218305935658930621030492920953553814549511601214641984397939037189643986934878415890922090939070427578219059357094307672370243890053453120967003508961922242988160876864329829397148824960412446513280821124892241883314447492688036342391829666716628224156781839675243796659674581169914928136901450227978013597693138653945547206845777717459138536178479266953710369508963772279061281236547915708886907667689081937493406103684106738600541100262787008747059471065864514391969805597069505565050151233936665890571733133644764213070656757319919039388118938253075210882859516147506809468839245740011135470274786982168621274321497665188300319603334562235534421417368117005957663493676223290691848803237345192434912465665329718238417396919865871333134120710517073683417241234472371867249415108427049615549503795501528738224860538460676720392875868626261698438228056015875786683092512230401599897538489228360095980752159490258074717157735374806690050015349853590369767229710437159210984693912049054262463396085508249182328658439340262938268563715259623894744717833699966180201154788249913323652215956653404857011232582770818862150130715779346002743951689275243551823962408391501234739246686510022276735154153398174438062936818843187021953946745788068387330450266993482047409308509529400887069518186325483548249662607066502499564681941064704071227311004215441855491231634073401961809074987236703389974993439243991658806512836679056416957365216050282244885217573611331742947356357748308478330984929574305730604504128402971148973655233370252933328593415448831374005810726242464775155356118977342742942596840194068133338141610749091640443078052777297700938276873668269280836283467725910032841281289357876118865330379943915710991731308768414829814731674389241507081233304663866652688517152287734958086507090211027130801148807052510861641816152556748171047862194001056128001346471000489600816181363398613143759537835734463470097380223970667333178847121742166237978339505084945840564804300591120184173005022419629811376432555086259936672979212123968336262543307920197457555379857786033399361139731479735858804674826631905550317147510740826575455384526005243911716394798545438546404774452744423208201158058940110410945383309204755983130127803405876733811345178470423962088493582933994762948927492630761519594758086352305003906352697550897371963214320279758088695852977316219835944256689466634986556641828527840530710394603837055319530705781433206165483720876373054215104981963982316223946155540162448192274889889915481816161014129111422332742480710512027849723849044026429680769803440316010136598808564229607540695695571335080053565951888414562653198365459981493547035333965788049476127320900485531135908697471453536890157189698415775481177794107604190191456527288840405188279508490082645360132429152288889379751999559985968288936089112710910309973067570621865972967346398430619284295504292105466916091541828035178323684155218186556796340711124306438551541562489751763977188126209840873609829923836373030275059418770626263573784813688683682933396988927744468696966294996896602769160036986059689047184171600019718412362651997930127874191392722798698022724595229401524322084048175398124008257637136067030334477654114042743699620541251450482700210515174118908825492609774721462055366779007552008799892323465359252612737727695456712154449995014845268543259740875744450235595031758880946786706242795049681223173819531934699556151004209215360832603215306918572722599298600395392547343180646477064441544096308598332098942811738979506827495524870662827328053647924741072354611945944265379787498697959643221449501435206166327360833877895746269008896094162137344263820026765753391034189247610563598881700835396449558521922407698130525217319501323741964534289761658135407331302630302854780224851925520783232374548326796328907125627475246122929296414094248502905947415575992751242508506996634735376429407383918207419091625416097284459162561447272170590829385767671304543843359908261608628467196328751602860804035347208536219374949413665519915085368923735127485074294814451965416938229179315309180378204728722389455877264858456583583688835417610564721255643864015185687695779882751742224347111155262343697211707633450466532724766334237821195879117615783397228747084512798865992451832791641445982802144372701894626680357923333751748064104993185218845506821183608568975632511813875046094241955744326397198431078927752472356672288395527355236066225987885985396328772844546836949236760648441227353682921913245547040744216668206746126567079643012005535159904741708546163733620270386595227380642312621874062689090399816710861502195826500644977817357318505215771516084763131429710068248249139162492892556126384767386218233345228302857013815543747650578465690588394825313419981396295736250191985710580846679236491105929088055068338217718370944062699938269197068244705320057945408351861003661161560945082423986504199873162383835746664545218873590261219345316048583392126663772506208519054623623733732811425816643842498897985966795417592003691300453703719627536068718301376481212741056148244879598635108500548734902984477529757534939665530715055154410390938653741666521591833549973825668932645268620823596214023963409712242682687002533955826932243805998324269084530478141991498931107101571694749555763521945874576862963018389905824201278786755796934723185030744610603483914598794977948711391354629025486282224974389447438682661643606831812488598723268791076616230538008602921583381443284532240746235541879988817472381285359683828950062022524646357316108266360364314856355316050499154144130887215414433174525373210651396119733069487813913096873318613666961939402572004993080999953482194276558781132352187781245718342397646806973069793406081383018907785379227621548466408823126429816421239417456971356661539825555435294981722390145222359192574194314642182664776888667725021712329415228978446162910566285420071453883416781489134566744506929129063191356184691533158558135076487541321859455745770156486652616746620858010700235568168758105959676998901985472706417531288487494139070866420808062769445013196701970335518100417192425136442744852197815370357770961797803655471501006418180502754073583631210075848690420360453063743034388761523828983557372852602790109658113583990082025106415006848860377851451703993626938322618882301899591271000879075416628748322394452285023918486791381569205686354321704163358637035324353038603138245178894425200804853014804232640065209962960096641776937613082080687020130883472099991664558057470297265064248590310071846989531069017432283784757153675098497043483482059931223224751985485354554519808422814507464169325174171166032932667762278190834897227510030808975252050302466493512646127848908741183038587799856966390634505200221239345266865799204423861484757242890105114328883814583700148678228333016407276114036941362115737169985605841735445608033688890692524353381053971593150452592094012886826761957851131323839763615662128576482640972356689220650459488317985864101056438186988942899276314816131141197839485143896402016161447028222175648273420064615301617015673045186184377052127062573422587150628959854886176205229616886565215837784247149479866487707067324817990842497441413030772781221727570393898531076626569482761976332874465960455935018021232313616829469105165367996131496561881423079790028197020753072041377449667453062511078456579246380038273856860224589540614393614994048484286969806483262108464380743336558398688089988471514295701014512054966842896674866101866876512973139628321441026834165860359911438931807625644344609274750282537324722439635823144186618983533732369168086950292204814362372048123472392174822684291066611784943531672592385041053779311049081572958008218904109965374052294046201984820594719565468430076822037328399061467920788031306210807428878267456522279510397530185492450108066714356522034098520971712751588390486131129466673396409924349264716231223460568160044054572146286566256168928699746838216339043317628637080958285081909697417621207405508511001815330208171813671768543487272089172606743181038687549909642874280410652857444783139948749789244343537320188375097795346044005281197852692754424896325741629879428825506076395165108387117664673766387526975088379398903288357402112295635432087437414162494910515768227117417711932232945391974092136590860000476202432818881161163644928715559908299814543584037170956530527567900610385822005025774224292569773732296609385467336929449681543260568582340850739091504592315081322676781063632505958627455148922828565406945222105635580286224167640557695260322183356239637398808014246118755054609555094122720020016673290789780007096384828312446295596545022120743326436571869713451446896888922951080200162568079951218413160983309702178276860244871443361314459232060147349748148691320774245973643394920073088574820672241184792682405330459869275458970721315458415404772322220839208036324127217631162891881643394036869317135582680006351732097450524378305263342982051585729293729065144082252093140038334428600943717769650829294111897120873707840935527547594667607700739582996325838861067374507926180433067251405352116133767896036538579850322184508372345725893974482449203287338602799204201279950628458617692934934748645046491968635338391449569329353499139922453664188100631030710950568773445423096458954361418630876241494447419866698347713405300957797872079291462389626390884639299690639310163833638321319539379304280498487596279495977933648358480037841610186331741498133643427387980302577970218308865036418106221571029282021587181445626643551912892390746449491042735969276652311469566584458181144763773752350128593126592576075055650198433567754320917506901135878671619549365520291390943771733201558080722733319100177931651968154228088370576507598837597021754117738087137985338962896830262981628055301107557758978534823854812982810501496288588718232218048882601827461644879029172841840002936746970665260086282843883088133563358024351057763528593351544438010102449942174781896553188470873781552236440714542829548321311895375408182160748659797776227910230823364843617233660291719339926167882868980057891191156961286113730404222996244445645228811797471536635791461504943812179699911719553392915467985888569082819110314718381129967865651453059679813190800422182709005693044807483008345642515023609363752556383193517427034362926840234776413899039043362351851350263930095966444898776041743786038172342060790714371194447539522843551677888570909340590984262800755500248725830650557511259353896315171826065846001289326829742161791308116878212721039217579698337007055600479265997432364952544755986234844740409617147566288275325091737591546032508096011443270411987315969680079689360407597750180374094171469981885046628982630503406281730282319799125530918362807799251133065557772589580549721937547685450346607218411557053096747424723286992072949541768648905189668750773621842979151157585159066981543346997356951876553230061572819957408798433268786548387703704838867969634471044881036662552958628343438480462678122147642516601976422702036294508798790923068997762622023363411771182015399050173071493996115548403715228268577998385109384004528263675761260563984391352940873945574277648499241414685824291385791775623295402016824786676002102151382666411013004217800623443217919523686177696138805006592509070252900155749948752601372319426962837691739012328002602992780683106302734901011003140670779004579276982793136849451630895091829048302965001908928336498837214396180793208742328768068649099204449507359860528957211699519040408338984083563306643854128890071475438665670708501846953790032571643627157135734722510592958651109840684568971565825455725633355594576577747618020156837852364031497853809831566253185809425785105813904615465248072719832909577295805530088357643935465714579135927674664325448384545582730913986167177799594349945503174771436597966834564542345782349530220337939230896227344286671746679865568253732514537743009223721202753169385665977610782359801886307507560408367712741871458966983457027538487036030425842802127788310713511327727774992046483037340486427902258367600773900836561591221966284269036366602985432353631799451470339639496138687167177630565460918856551844344516890334624584682912414317535865749891247595560896040292155393977446428877279516223061246477930882654235748010717809152774016548710468265535703098981310831043094866753941511631676658281403700866865547643833977042757125044749221422969080622787608544404858813995712747561301902637515073878311885144100537103141831634743367511749232053176825839150342354505860226305868702779243229691617545953440457447399711712119207789915812180624709441550694727351401234550204629067783378176214191890146908807079818100673485939679726693487696523832201910820873136965799813776062143345608391307991994916188426151766201151633013365240268650603921725403434552867518082580104629058208364681107351833729751961456122525371356771188784251994023543962242477517373345353389150726288232132196100844063151547998599521588884711599783751001062597243954442905647837242827112768861308729717667450387784470605049817926326301121793285779630213417290584506938423127857447098281990368933332322524565878486499097175032022167285214998827754658306559015958435161855520548978267361357962795749330522011191610842080236996138900439932835066345181640768389987922413230641588672500479862191487276091383655534567175784547455676041291332244609551483125353611287145210743043635547898213697720092793013726170489082803939099983557408289800561303263280487840702588019085387730318818712730746136642050910874961241901769134499707745752836339783231561103564821247090359536816103938413756883377157827938294135462391627057605602271779835321108182513441990267728610496870350607337208935530864008142659916508722359726946248604836665891130395850751047449472699392645264605522665189249764530807213109352096231576084883113826036479166824680084142235887774104611556932270788793268743612837957576853818407467782098467762736724469111891654655430484797104215239779289206763896635896383566418058944214745396226231753265579725268146631176978012993711098245340522927093300399629513714438319513505731788056663961042122577872528013252838483308299728818250749885183147176842056425852484751295545343386763129354644077734050007219968380140522695947091991189551884053700772316581952105304731149144913758587914656238871946479845265284802689647131727151501040126023071212228792246888113632874334667237820558111794202721647922565370422448776329697012927691315004252022598108009997988559023568904329023147853873872402094744838539417783679432332561309381772050173430979624532495103390555419373115567810960057360469040879350621298748824052849743939646946584677743623702801414300304401661790116579760269790511369309091941300404399250566495624246838020340508948029000263762200578640552156227401553880280034689559175431276218613147605255689989509498932383472879082539984234639757912004701170765647978008566264746119214932018152685676334858437821473311767753820642489458096582004134726957162370383720779356597620052278022518225296320032536927653198445965838103755079283425278582591745643500626084344163112970195537547485185666661090821301768897917608118674529452988157107661286021403190196538623956291513139154058784966307201942185802070548054644775476955678720896015971790736172414061141977276502529013859928135313797092560361206849838882151922518132179980933359782131751070483806021942235771089945917470518247086038195757880028161556161166585331628472637285890244233722087246293327028353174928410044347263041799008694169287372227838080288266378013920532928677292804236565912564514894549289320084006096841831783905934902376205000224339124261918283291801084770695741558673641192801283496458206833115754626233916641813906198852245734368306773983610104642316464133135532352273752664453382030040955103219288976104028788257165434018178388741015541294894921097507774609559771524786912881124482928425719746882048856549095615768512861059352678026561439383358592178867356600596530098536546206425434637910629888573898318354369679219264775780379760991519977631569730191138816967770383136174316445378545700731936052197001517354100766869601305437275881607049987789365017422246617438193269192862429301061984254163460485330613122444410053811904217052950210203949284993280229187520880003182408337953638642237831826693545467637857036064039922133069977838159195259555588878191552733115500131708794901667727284263034494974713565876728143942654920526300619080005910944956218545217579084841829846693841949558812074700106037683563441033205450016151657240720125298604958894707972183425970164384759848658280980869054903677261462021539863629416377179304762721831365968096850029180311410797043113811864184914158697584986602245464927651310287275862938670400213000595178163586440778748117806522568506530713507342458944602683462083458031339214535422338754448630386070872785027777775086776299202224027107432459134004028928720902658654473562108425271922286631314180112202868765811959272712835132421508816450191208996690219737367720181554670989399273542199116273165262450694992002848523663471619210135317944601819327396072124887398157503934618170208223027956393354316765552788502935163273459472657951040114997344823774206587573034636025051615613927268982066048321085542322084072024003091375158254174604210574559615339198458900273971574375380224264155677787593079348042453601445500804634412405440897265939966330079979725921292231094194707838420418307596625539432445609635895414225661367379692854237137647495263375569771626021992267349139427236091784676196587205759703367639965915756363993425058788943766830142891641757385033888100786002186250388008817542820476784272595671960484060571210079656164926916996939208557744994249775621141413333243237951509364096641340808447528614157971242508505925805081064620512457221688482019793441153229915524820485989751301007559884796958676495248802794232312419807388735906666496491511396292448871057045643419978174371093169216647620690940566563479122208766735316201439579444576216638684660165500533947931580877471076476445478396109992723489002851457979744344660440511176045586177008433876053148008853673570211565036104548799284037532175914820188299399708652690645538159173954184083082629694214229603619265688038545999145315531953051939183455018588454934955788237465098560821298424007951804176372673129537115995329871379480968186645546885144362583503666244085255859306244147002018821220464219259172345933989619257901631775292386555197656249237162846568538934472706908824411028132584191077575505481596675431195699439784151633240688940704392660811215618619025303220713906467697732683681506611237692800248968355757137231128842582768928782310956781189966969774094893487241466149739727949412661076369402958236283034824223717633199718432399903981284939398586827244646054071699259408451818357188910943512641768469147790922528378375323956019474534909055101642338078115996634482620714158723813542032404931757575337079350969461348285274651377146834205626236321971729619991708666383043815049988726067172676572483899667394934781864059973119900529660035329941393264852632809300822108367705019712870766990024781300851305272966844060610164378230719136307049422049383419600953509993987135158792521973942806151356564313408161568884901747824857836606800403926759962908630937903111506727671941876882462830751887950689739054897988939998836266317622380542165500973438436075892142420468068102248730738778094787723527390164557430678984175586097805980115965586660818087835319300271259737913358957897334008763443118861486976837881121510877126677572310183325111391985166650796809644853255663841758311669493885921614166745675555382378604424455712633396677214622446741586901295620545652768104736368260978986496300568279073769198631560129161425693064781006989197020226538674162603049633997127366767957428955566314014881184615445820075931678835668267089919455698580240906776542744450798568453549054758781082742772021979660038202099786595196994492933543169491649170554412944820929676092514799032258890049539549957229930180621792621124071101622095785527048886053819284236085295701406576742213483133260263421770543730953570108907807302213549826362852887826558691568563466259473132585195659138468924462445834402277049670665349938723547520909770648817090001106391255718740682470471367225709217122286721119172532204691459692215612297524374555068820561736954940666273325260413704462908654461510442560076329179486145106922588794437481577891250885911134172233031567497381920863972206513520158280086982468765373753233446669783773281011145261959958866650108216881597594956660290352758332149372864358745996764765258208605552447339121171297976729814037989097286506976492032209927924040206629297956083333483709734371103831364074116484760050698520156744722778358999608425578842724735306117051602021864568180148423771285876616591199011868814095160940245806826199051129611212754574119275346382293994753499107485956141079594010471612965889159165679925544442250779692987057697058479143040118254545356111724273371399999432672127719323193391300068902626785230042044775981367284743790128671709651764782559460090760126770386665955450974046848589127133239909729337983586535080972670948531616454530790871573529955075169242502752012548206339883390344782848948625326384370394044505434363120240495681948503862902856933719155477929628988453250576597682076434462946898145244334205580449946585823750536595705362244038184299359354415068135070920577444979990516676905380209621766365606835781587320379231026760528625950776545290579527210420413852461568605765628218747553890252057850800740693372942987737463057925699377504026856615866168040761542216193889794638536338311259582441879709719549522407479595395194229768582513900769548365478993386356880618290567934076519758024674217910250332216964377600441282077990490323308123176112379972572146928331218471752129580119166422739351443766983751998453064578736640777380699652918703123194595004164514120225826972469814614881846289049872728361923812720419779161557131344799687575703393540193254612893602565440312289217822034095434438836935460408954458024790180847629703419796230216029451611247691650186005981164172743826673072895297840924401656957765725555729576130242533547909506761981919701424151665935744603959673618532551061007924434665329441818070121476460301248629639975333472474598343390086851604672402252161362633437520040663234254993084214185882609820943615743240845647108254431018830907726258570251121046551644620072039153746473932152920633797970985170747730380605362838981511969546064420171139295668853118832806264334317017170205170264852813184125163439247307171335549506051586713611010580504697835880611507229261275769395214080302982839704314172657091329508291125343176943080754686551329222427649904174047481341076368194957397746437968651830444656683983184841948244176059863821383782353137304522859498310101762249439405390186494271323242724894320227208505266704016110654929802726886299503201407835500681783266124429473379347087040369339474448836401463014307665488869199951906540631166476781940497301003751985705416725276470230859199227399842341493349983909786403439076922427293376689266049349441694715697155470599042174219258825753425929995659864267684514106123846878806544579177175040277628236063300794375840743669481319018301570912676662079893317001720205395490686409451497740977410943734521094285968471727023406450671007142874586355868678236996339079944880743760883533682031211373244515710404186429258794496377751457723511758660881749387826753877641303779519060504064763026806474269068794144744826935195393809701784967319464528914389222386328010121834314118098075047970243899193572725705270605470472814746474462082224540747141694065206969516760010559177013648971322784201700335664320555114622179331323222171193273734777157788658376969907911711317283537401935719863182444704761544818457702523441248455096812811666497090604322747183366809811678365157004680187681709568893241844073623106025662747574796976374720906354840294917347274873081201950527096375836074625454793529542341712726819813399026419025763373611656973855087441302411046998364322210012677286821809498907623686892633844175188562628321296599412137517969890520924751998789466845120578373584504314890844568816138401588039698729200985408629694713225986323131712732194289141354943233591229372423096601546164996985579627632755545779844544032230409049346593466633088573695960232857501802685021200071271420765556577264079830207291948065129360217761136093911359393530812177362843189441739621355453605002461387879606760408053169300250934418257134216136144401191522895306530077790539720033966289417946596417779835592534222877746564000343935264773517835159330557199471598121250380175595475777459515207139084336100115379049015078907056708818445741145088305122997002099696113097121893728533083594288099049270074679601280969718292839412819896052132336107052144317601499501995895358971833690782831386342368579567965634192930497698152099745288783121459736846075674766360600396879174354213850348953262958205447487692413303661183286891127783175460291279129556760074187332255429082447596730430080458966345337819875369948633505377224451590105416566588706989890137538880243275851514118584543536529874915727188653564082683272251101470090989862716772241528776898622677036983969959782816557940888253718376453740221818841187448133828794719644549375700207234696253360159221820280817972604912829242072671298002423760022464850087988988572315884221469461474910278915546521230594248610272604712698132414938149901767357489609411826805047717301316458946823454090750518616610154107017955417597598280422938627155510777799674591224661638474771460111789648586772191861044175307319060399730981271821910672442441948147115278343039206536812214246550226930206567588127647543438557347426328154927705626600665467118487652072673356547316696621770698336458358268302077663377786474895873125521947859905262932469843638246857387232842777898399257375979040382852977873976846638096241754775914830964299155281451658037282442319575209277265826932305975246124505643557559140534014297675082443347466243985834376148793899641444025141130024688693719521578304486934438407345590866909464481382353532042192534791688998014391786232376017552145946542744591797476063616652401862061888475586487380583089379600294714755490167949590428156184287251585293982983632066919799567389478800199587980348283125992532975991050207350736266025424310513286294034955417639910947632944854290444810268915259589521457320122663991033216800068635048620073570348589610617902776607181677068179366318045382379191259561984388576095180289432157965212056576110939899154968840313775493935408569534499080090127038401726261801820466737959946829543697194232579220647470975895251070020377417194263893464967571542725040469387188357277563444876944595084986388776168355058849700286857269280542129179585813191422838038713728275528683064543331486880921516972378760137552798110459669882917779624109707091370378839304506450124598867858957886370910482165298115205833227808177991560826384334655419760315048884191986084840626490039958781693294270619622974531271365326944415146362569734275241608734402697978790021463626962620120377533883677549691572082415463924241350575749432317953795546323852419930894060511341098518780558840927355911671616701871181553505823660985691939227000646822883589944865752267148004631656752194201966183070345216392823182511277834283289541424721726008101478758030212294751534403712723321670865724341810804779578414426518997788601140202712329482376233826892096411116301103221754850809433535043407762834159300300053391341804464235262400380739510951370111585095347324822374380350893528935216587780976003257121283541953122550820412698760354189007713651108604718194108088431110742536391713898813597531932334651579864775046845758698939196311882411441543035704000826401267779538411066650964079049875221717226415649043495962670656328990457837601136851326246834602134845575646260777352188360216622168327326752466009077868093484338791981564661208248486780506442969584602102930453724633487602599622427009937073587107459968463323761050293787408079067362688314322240026342541834946497494337876425107862940494355970889509680133762402481909558113491329791361379976702061469804350149070673315063787624020662390702718327904802851482956061154740695997256194929668302102119305025062268263880896540629845561979338912841975881135820072574356168576772366593657751853637407687010082486727325827055947358759499152718354765991563039137857167298544040275171738826587384991774630988127769334111333640702276667861050716885045092417768179812507691095090914411583370303122408506723054581245437271259392013793712989504976889641046583485074819454011857702359172469012966511482150074342299282812227997873756699200712962845547283485924965768203078846795064702194730980149497744309949779104146628500906670090421960298663311030110011132782301805889845558966393460875372851907436002284230389621517161956418065627000999956013489692855739326265725163640020407998471412336038886746834087295761469762659715075739705145216740388083854201531984940935620834941808448216518439071864548579354119886526224032719177493852757822503822693597054005494545632486688166937021367054984886527552679637592542953115273943389962168015529068835137032902484582581507127636005483568596542941065170419630389669909871302275853459041651175097486133027113604353170371718416809873141819585031564870772149478854628003926277518456650430912603414221842304210133140285691502890354177509096542281408332982473259563282470188681318906977341224009824572047781021244257867941962179708245494715165738807912130559425579829365910185929521458891989736410574890894887746130638684259775642325268634634396779838391211928481559046325726844298069038018489373878662677601466755693021431752909926805769995789731762891660092351933832885941822434444837337458570622675049768273613929212565903885590939178962936286792195698567220771145167687115170363840099018030189287795668529739177054160961453069937591596227833917112798101298430027748909358748945398117353381576846139508418563804583298672849362869287801275472398663892413528204505780353885364847097327544925680094275596516029103457751245135941932152689509014544595241696113698064708110231533338827666229870284100724886605287603754043021857842964223163531335034068040278444147520082689003786354784156536368956731168839504335456317801016615510364384488614982713956079572913905790086466129824415228134778644226453349015863717448862610877742837337586277208196830696383180588110789389572837677830118699970089433656062457189838150176746551248089349447700083734530619482002243872523604954757117394662913618252446057626009488669025658132931135067443779323202503802054350185299498077810525998530448875507249312550651003885719082485478389932660286033739356873644557467569660119191601438807752987664394513579476071447098889327766053074116311530139110492328219311058809736704743234405890882856400267975943534642742107841490615409296240833879108156578990949881571269023662004328021528958961577522206062145798828404918233836573512543126936803798726868475523692007777213811796492400361590234577003494115340683355738248739131353919147581585276254133758998420361887955138073173462244771235853672790530083551436917470851610091475448224060922455757610398609663567882894550033360433372084655672516489462327278693098950945586309830114378782588321229906713291819397652202572455840081402413093213342095068969419077870202615357580218210512329081352831950915725992555006719879687514630234571315295363312886696129887510461508593563383915070262240450567951168869460511094662767237607237505288455533235047477489980158288045753005046091690215964523830382629210630322585173215675280891358488354854871241265327424716575220157935604338198464883776605527026552678470835601024356860883266117880977031360613779093609113087234077209618102390157853292035471271969105674794704414643312131439560967516626112894440503663881934028642048503807286098791982980487313349900484552194065734654155537801466230578392118511432796651242618604478370665694246510969746211106625572671764171963200006067946154444738300958784936312325235285189985719809160006814191918616838901518124804643471901284000707041173800540248415993671028492407559303963487240301375351991157511804441626152220088089789683333245220004404297312612251617655694246030207535958932402085289249243527073965651388572918316494763448810446032143908764832655167298762199973683709458549393433833258846205940157298446429786277862823329069044923276593292449912404613383396901524758560101968276123720343055108979231752867773878201326684509880718026820392202804849215743424256804673069717712187345608571520356706217008389369827536191719737107940739990603683952061279228549713860022565446739856276967564477699256300949570927013119192982495577576375085942369144906834763454604394437131867956302588382681792897579073867577438197352081312680685284194436531551097133568125748283469790178901431827752618088331363997360282959901000051972437701525586481910612361767641145832369347955064737525034060992789723071950827784970011960313162475551008728852173812918560876774785619606389351240925078580628668215537123624648969325920348921913067134717109977033736289595978350953252359827128964919871104481561301082918581273929221101792694864281968328624692921084643895996928816550769582289873372386157832942848807562193230957406308380891462836413811692922908323367569040678765357616396175426664593802436019747199540348365085688712885529242935186799465568445132086630207489953169878887983908989545654675923206058192261778837661222533547338637096772959302399118055662280926495004498775277334625217332638938949491465403821243218073615845361140460215552597536672022391988105028468107377043772329312159753622750515723876452943634838791352898878790582155011110423358451831022761133433580478971414977152515778984829893616449182897931779032646722874941867545326918364087982826661910595314252866309267070173240595070622738667057928733882718495187976068532280614808818646593287994277974612452954095267124969044104613107390919211239694068351844696993047168661742405051922297675298529668486734836811625766352554575224403184392246233255616522514104235923273201888336360890136050472633749620582370618484689529986526746636302195871613693678672483535610994037381399698900440515388959039103282794572815113975877627474453184293053661363795169817274605208854646923204175911435001350395075348489615692495090020755605575438417029014607818186992492393911943824110025705182138823009803545858781164004553031127717926661474377483736623746020207353840348230968767789362305616789380673178566313716353870471587401728905272491252082716893043739822965883776322658705827681347353299478638582774381654779360985613156779341800020147580424559377378303603956313491357634013503034840739927578659534391275516020753086523653852745037888597124866716500398774192653741450111604950710018649301535827573069553026842287584834032104779305348522095490792573563977027573732045507991015818436798097731303516449897806847700924124658901717949986390152345242314464073314623970454745260504301874212994382125706449150735469297093206380290377591188187390157910382794684926286064935577057927535699984474878454484558005063460310194327718272203125080977502995191976880246589639811415337135068436100113109962982510923400768862681738142858204141106078957011495068943086279652602887953539761168458073043529965627122092196855252288491697344907527823409037934366431756882408319294978354314731449399148449444634289657179655332850400946759399635949907338642665621874810726324787243040629049467920253848591539802660863028206837106819258636756161674883003149343012810529959988806188629972368964165204568060779510100917746573081454691925813273129673025592058716565880420339131539744159172871948757014262221471927891106602750761289442732242913669946659270657251041936310238598175490798699438924388900893934634121382813621947180798111450300020433901579204393125539951922260908899971256309233027142912501440398187050042025960878087081358686649017724447369521944670349065022384096930518259399680394210385832160164007694778919242121489543593744009993796437285613036289431167437089467447379716761820864159316835618424004845427076218560664395978802142164316651900960728174606413768465552889186181960348825852074845556619089693189055115991626908725698821763884637459550647377739141580667407665009778341493484216184403838831093760153938893631063154871345972529048370368834150168607515857990254115319535607077038149712274469609689409530526009808174927009219332674213887448974859582609816278112393479338277056197406663789713662110111506206417832730909438642104434100156848794624469675999352470493084992705731112482397592335989864528277041548277629085165037960815057835098230275874215779597790045920608880043548743473529828147036766578453926047834167045941769174894680825377283621606685686911351945238338908918911109127985145874140765028525906720911115279925914212843554397575899852207175909946241446928463268626340215826602498292115869480107657666054916190877864527586671942368344343143419381233500212897771314250005292249716731077710017168511888229988920847294675210622424553471607991208322047262682159688664508167350961643933992447751146236967030823020942646253674913470340742458766524088261910336251980464113711612273934979644756701454581288427010677196263293691784822862791205618498280909007323886154644578857828584097096047744112659161889517766291662527168721718762516513631708979617646484309698655020383274990369013956616772453347773594284105079107689335238793554981878467812308125958197651326354256394023461702890360708166424177501440151789871339407195406803684014377753823023274168651273314467179277067541525937370934213197597040931481491994889872286782267469651931566305291459571361839749552474801943392794936563511497990843542657131020197144345952011778759458037507874625180499505221398981478459503317862578489997751009183675879921922826055038028507810017854415807312470071381244813199018918287915172974806315354184027249731986676050304698921400122077849186541670628894614373987362169714665740339540354657042071325868663336279283212156148810545073264464398983800241706849219912974800942850816694356492957834344123652616984823031940948633410216606988284623109833870141892807820737483205430749541642896324813950945589933704491826186642654150819005827072358841898280998019151035177063881643966427934704377364802695785368103679866531939037687765826608503687181035728366643365057717227866672879309080997221922188813671309348050105257264157381340641178162104806787143023891668115663107287605369457537784780650585029952691170323330371671960112352344407475268128928355868286840263257160569745001944449517018066181081906441054552466219974605510837665828858129814451526749038022695678115007030523761609761607516474358393341040779805577229347759913433136721597866105507342278371167761831994859302758572613970586584709868667953396094629188678055717113687861007855007438818571064126920509669914928942274974254510850292688489395447482286306749939427340324868374491455647358303787886059847569183700454233012866275857927095106789690533359734293614200328824671488045835314413863079762659740489308711076885123230786079342451220171545580184169216407608957713287564519943138023272075005128755637620339753300605391520811588010542944317855589339824635645831046924158286611788490100463414076094998214465414603928375102473505894407349196495403702722453457220124463687003138483398423091832402490157951865933785992829470159857959196859838685981944905441298097484199553689636996354717206181813585525926232995399169375917092428613664218558467667720623054441488582625370532082454374482290302780270657510380017108817832818651459865583258719554645852534197577697821772923612071333641240281634970014373150088552712917589196082897388980202176082104877545001333613191713197620856414914813796406630406540354290848751446093045428797888157247969800565660799594388364820283160338946679044511365530731423327605787108207926760439535354664225367818502682922884743863930395837400973858701426510863446204705175847605499045727257503150850585856819746842929041706716614133188504384698079735601777104811768366410779396794362026848191177314824089976925551288263145278012643813913756963948911084647998499767790629954544951573178700804071248028333711170264272301544239136020661853406307113082815207497537193146840097106225037195921638658242822894083649272628245596051552523505912078414670760567587367336189411174276167915553017199436756847928532673226578045593297864425666944433892545689917122537729840428963254728255533679890350772231031642222559368662240293289707900774962130957134962928964929387875975644766633100100120853804913657780486947710046538421970875553324956543022798404918623196790625317699314735845280277782058867692232477965323935598599179926338256860793129715306595539487832777388807136981497464050662517514314106466975480788825062108036930301495236024766871701778304594493982135466681201891555895109323779106639743217171528610129007333518011331114135668468007910399622453150596207162070402855157026143358103007802778165023775172009678562401690788151274926741016063023195786733309667419533263179154869008772125173072357898092522530225632265419023399141038030993435384580270680334442716519277258234253690592492756444995993189337302024156133921728688211168862565852709987290601656571088073894875836169521706209563268246090399618378897872018226870237853568344181001214934617230676752863599011280889100896473779245979568825007398502380775095912981555306692489535737276413238566846781778140576387723487604032512946764713594366594134553106314069585626346336897310651638074355343126100690967453765014405198118349235318871940799399909553892895779875047727780327084660936154885596579969702595623280284617474416482632048724128298949478102988228377461856185823233466718586883495818421919438832220412925662182136162779449004102238014024216582366043639132312295443465694982722206790823288070241513735241623122747757303256124704268544338532247012797778599783518199543021487594778160761885270838202084834997471275528202579694699665538193959379828961377844300795301854003696616611576286812079579716153560662027357626724712099348262911458725856610030202616546006848143871460837279792596145993239211017039733769873495439047451665419547377441161880916700728524973472353480092459473691441023228343634384103720771001346205794664067075309824085550357688699700784814367551040154533652214918883832021327917374952250859104094126462615872664616191769631733141663374449384885148595135867901870079581736475850407096563444530063108651340154568645460985779376822846423033101732799271214469555313966505481727640197265790621953881325350963250947445989891087859016969225819860487325161631487225332086811525038778390309210963973140870146326277487361999251603690351640181322863841015778913834548208695394911416541921224410372588235373528329662254040539599551254188046955347016927965818084221691146779495770903181471995224200489058855937464416153490934682109527381906924934012585401621298388823606711299047278538251093221267600863567887299111060647443854063130702691579329114716835748930860734176203484242255797432510010038643688160552466827732801481669787349633209963417237792378830351660548716717928740011191447262456712470024976224582240273977070270235032377124169131491308448027264009944972595720923593023069927300052249073651419777811827203052590605053664793101848708283976243597654102454719021296462440721878685429130719911560221343598109261278099244929883532142115168804430524223133517203668759109206121817157215013230491503852431276016026780710277905987836302849099513323332565542428323312697082604828410911646293553079701347159992856426889889700767442334648965004511482489448843811905203162023956125155080114293455938402258904452354916067705752641775197360904402044833678818915689702778936604499831675503334609974345390667968123798331363984458622049182698598018506280836505817585632828672397021647037926115754368783456640465906078885859361572607337647947362839418949283576050483364494011349865491208210048132550683756281970256869699549187621976397204502790044667563951193761315600645448648552507497994208500289544449953357450468366227668720824831641359948030706016118223091561752595284900289952934287376173510267424188159371599489096979222577214401390912722461788838743608051967515303147911414335732073658590493042773379844712919544464543044009597518309741823376186337811529128015178663600901647697454495895732314679554993893375139495643626014549592646737347216021885313265446860088537207722134527510310595262530711102355378856916499591169220838887707805173543839856786701509637808868647575766982532354044245428400882687477770328538261997625425819929342059121797780827787051185845230897298563876865112750727634100359941466012227948957495592036099460378048483855259599108171236282744204017849802110317627877887503036302263616097666758010603955547997874569981579733423399742444758845313933453664591755258134755046344267161094890817996895922670464402169176805100590718447352631235416442486477743878776517385347897501402520406932991135325561481360435329683129289912953561529040275913176773412777046365308522132575486307933547882996383406999371515422494380882406473326312335046138821594795169175925450984809791108923311377895396640746083457300976511706075241436288346609180038490635692685329640055165359978579130606640474557190848662504146276335720442508766033207641200276837147202583957757254830817635228170657759415327083266255391096897305850456225936898498975622702158265265280620025184416489819196909558212078989726717646133800839566487722019320463671881723954704930209279866104118469570486847004963864125953067376666038942176189387542375224018745815972284425229079773722925510180886739908398854921449138635625388637891615918884240512998193651713692591695779199884949414977115194315755826307059948575863534749639756855970386267805400720089745025270519397969812529688311916459045209756305283373094860238329627213225690073767533911168294719812770574262437522137582503200873637532046450005738917934659235577083622041452850139079464067246673601827537985447814076921256085694481054166195675264750745239025451705310940662636682474575734607040652757535777432010239133411381357750332256114390097609946952139817702841461088413608565918393299393135808195270706927092760772171777909876385463446024051690499497747577482873009339789406414736945719850482990513484286707099150933044579663919535589147801094434509827017367724097904948059288384657526908214068409367522488842466125605269509780101260577282287359937984997704573176117586941984674742904864012319967446222686363326007641107029348897236012621498459684160318742453158435205489185904535694196446063337988493153116954758361115749766774070315448057897817050457319225881549431143902579345049989550037270423618264568041589970013697709364618431829666069073135476364512034680880448544639479881054680984967013179549428668138827658444650585179771236814267458547557138229072663460316438137501465429194535993436082062827907253188657517973424574661225027443019092242962776936653158716809444242786249840749466556352680450276843578211362734069435616425153792322466645823710793214590444611109221070397604565101012869760593556579799723039393868396179918986917991593869470863242416010161030988737854395677314829723489659476714272134128400437621066020055056620233395195755864512830241771428237157769328767978452275710423728172468445461622447270366618640546724925014467120456547835726921447053879805427443650665491900369785230070372006141837257113091116810217228672125895948574600435329503311469579656490062446226953912511252868037826375208346201091939205299406735316501758378263276410048994464890719508214784102083666996441555489973118544459531232788198843519364669075619174436387489862636276503027206860925188097236088479380162529503922552102831859119520952160308797092230631824304905136125178526678309896484076261871121193856452332588015635845663256815365974140063516653852783302799332761818731642928434366351615663255280877405476696700018814831299264949756061744994556048405651692066062944190747116474057556195518345387406404646634465233320351037784476758856666609017287520982244711564504556724311091957346662677919503511119124849140645554352577254965663926785221917623854753819710831983228483946922294953737493172577554258096479498589102686359453576135514660375139149684512296745547842471779306074999924871503917371133105984182400457742575917866712195051742896119673898889045793126077836316129782569411368450788843444978664044958957817797753763317503868656921432845659076387703508545492288177459213464479036409671937884800156599085262761750977394016437406423215378834130050262017131975912486458792300685002533813548915131998471093397988436544604827289154971076037317445126097171706215491523093558078456283921799509366499044096091569942149387112429146631205469132238606335268740464186976497513460031842898257475120258445983103982014060948468707691618383086238789106146824197283200526150385110681990583517695632365696941423626101521553817250369391988202927136854440106294367264512033344244808295285077865022358866847987292336334526758265461364764488099277633165502130074494529895433961752661174901691213005810955424491226738528512234383695983978048397524645101205882674283063999608907655734436344801490488298357189816409645101192898539876088229692264354208244568412368752332589778385243845422759205676092607958467279386639764013337529817410380083971366987501792518889005096162725302906385122448156294734866718079216757439502335418797146370341359507068879603101501646447422392328672923717256538429014706590688672940694842542715905205340933901432108131385458259704348580931485506339418705437548201917022688231751090132941361718770058091133457961642203012598022043107382966864907037504453868442844087909458071383896209544920759961553665571306844046952712994878309713450788275724844899897349703962246511049877700417937126319866550424826450427132291612309324616413533039167689451483585692702166031906568999303527296694254093298585047142854083867108892734431087363457002691119243249637729822940094402075202466206644738391720442575483401453940803546273409990964069072075622907374684131198586578798855914252147080351784967358936933535007544672324613125258268704637563439646390594790703928961259764866705690718158460299360428566416523782711376077456210903179808657173199934312817969129429620455695201243315446083595765650783244672112585007760996890714299062146372250183703199851692200508139102053789839156229925006468735679795406627829502247459266561768688629321162565605008454294559032917372009820858817353746878318206447022686127649760906343394156649026426219449599972627879887420686537748400124027120252747334436166813022720475458702704640986434675736414944556040180469025649085325167271670951279005239342170274303288614132330961696475560201838621599787236096212275704210996873700071225799429518696300412954188779628724093278461798048647907699890577733886055838249114228316374869287853814814314622428398496233785577350860511010509261293230994924741892675131618818620753257403868480696490469827999122161138665663820326019135968402515649247906443983330031807895236961651840561410338434799376178182100474351909070654806403205691171664322099215471240461694247104315222205104885366382704720835222072281792307724378621462986066830039443184031897119593875880719811504839775086249284520537660993570351138469597842959544064857515050620849712281233606395414804523183037590392304193129358047025322396391151279375936015140870535146062989951940745755354886861982269324695538210219472021248849044263655395305394353300405061335996832016669879477207952586691433189909211865226058496088149626836546723498404814381094319857403683774663709365806373392945879466445168261148333459808948132301423449736300081770030290154167401795744361620184220760535776542316284564276440937556897155378728695987224574072558628891627542274001393924890937205554561607842415395618839990558247974029707414788143572707914922104355774546093490057376815968281968019771590645796605754942541814453299247981996657119645518856556568121513349098046580376847618266013737175683727413061704644380829243916537132963826165307231060682333889999510255307327441209426994137920110104663208749715410587445826115995906877240942869787594626942988054778607764580052294075703084063851604360593125556585533123116554638655410300726993447731181690786628011955322480995617127881556393519012560771128846947322636357783025965642326973847446967479381719183498441201028423519219594794118886452077960231343063217174354069248862375881350795013019542125685389606693125427932944450460414399751105930683075898666312089709178673814431062673285729135247335737334139964981622560564197417879844156021330123029600421489114784857526438625181429619136898382227494155863957874082378090383414087929764451188880233720098864012236174176430506370381076927834118901729401329462385639308531532244222768818571728893885168650075904844157097366365393941138141433007084179831172343974321289826930882817908454608352276168839236706701819377906387518688982678985926122487707255370774680909173812195568154246781758249863590845775282210873370947100534470431626453265098754187048260408504943289449671151155640450375992218315315062189417680797400402678059163735949230580218910561624590130191307342309220118774890541763475234787205095750830124580097608944902014228321517081786382971517875410232779377854072683639518037227273990724613281166726202385362958044768744894558935561294166787711514445952150728011245289783898892439805792611339511716337272476322035613413766554936091076077542886394153750911283550953891017569927348105802052447498860656941406880598157145534961021164041299207119157382239649687900615771795957511675590848192969043559344490289369648619008661184836408445470922988082018696435010241658928067289346189212883998058867547233822662874674898276007213969179081994180723645143829894301735530322511478911846799356943769256545351140882462644178781754058520462752091194551715071532232290031783786392997264579504136224307388747429588420386537963008878284974910153671404487270605223983274654434529356528076960477221503024060329960820144287406646309024369558220175148190212769591948548065002515966276672115626582703870721458114744697943698506765768823503506327908552602752457845213931189712195956022277801052170563123963444611270021258672357370900902467406949257666965304797371427626570535957448790876199299797549154709567456866266693317816026949924563786133450401286482682564546781442573431384860066826797672708278086896403276259416788405714594114804629164881285200102610561984527854316767343019418002873928094615194818546866310990795150448813365012546122141354279122839130369472625897800273316800303122198079222723393023339699024932381363017812136011313683103886773390012252524103762883920011468747397830196815162344845844170847115405630671221502524006009566845020996544235778554788006584453063354586519748517271104686923708210374238344516214463591642683264697674851191611783934195142162634345728069393696716440345231117981331367472558103023300335647091931311841549327154187214539550089621519955776480953224728170568462835256462754305762000017214990289645138438331171165858417764510618582508210472454698908552605715433473640776605980218446223023035764928698353547722866911672550929264234953591129778086706764009141760472511018422954289469724271931395782511177137364661288610993859615446366855566406324240965511527124487408138633958403290683016637505159378894470032446794442050062323805678075861405161794915675878485475379803613320458867201313746842227773933830101592787382664035207938573727331878722116006978868491056887673735468207179344205169186912073390602304035953144024848275524988496686390561518129135491333068919805095831954745243476885587738310414344539933978264379056007932577903268772389335970408929063798623591326882769120482353226853311130949276614545789111470718167829879548739779664939334049995804451114426378780550061812019428565801151160496597514709360848244784071510165688191515476308537089917774950031546779199405543023845556843295871228070339303655080520359026902225743269417733783302077850881645997749984355147030418993109278863628555954986664521514608322432702939865354711714611209786446464432561800235200048641692809012519555879677770712014158540324292727965139982142625427852383618248974400837646571991833956603365094970785232889745881493347730994863973831820193244687919192275981928705919005907540673571852348118683464347785054157828224490798584087005861205284471633587772330438082709137396889505684555352326182211102373127136881420583983854747049000536093865761777730487830785597217538818617272005256836873008672176915441262877549503239222116487221786152262091124259237746705501612558235461544208744584214964776025595727402918471645315888525882788428685588949650842703942989935442747557848840925342436759646126543810920255629982051541480193747004803579667745874100884131811872582385785448488816682771330320509148049902706338669469099351248792271005092774614149529146261051764859906929923817599024416187949702356571809514425854995765179296210567446002214133673754807986035969594685698337977267285287592506044418464357782403623776670298728323706045274425550681518095558886835891475330457011692173081904136821961979244460426499343848452732374619113711082446433501694801550253284184628733492266134568944139002470663355470788141605485679668656432669813031783621646465882083005036445481292288496446164101250237576828218945511845805957320909394620648677509380243791289601800827940474817422063327914712842095137010561943271762928685790909493218055568979066286289154737548673198693738466419585618899770827990016924649425190347377703988630149201118352837232791996507771558163406176196984072223186782701235403499438429168556505151743837735392032256115992975687965574856371399849841889818723863447747735515013535079191081808269895360125247825470432140977846932329438014725512584376086099814602199698631548473576292080996702231230779999766892614937094813131176126725029020251125017695385831757933248237475871601959893096899542945715238027789223568504876418241391023269149165574444845124608305145787417507387176744173551101307645537897887522221852058613301075912720128415816099012918291185666715739299809291799149161000466033329225776086756566635965341818542256059884318442721810942318109063106059677332784039505960669772102777361411827206434298538442465877284718517883633752819325425830054996146148373504141918616198629106706387911951762050556410548148530782364372016539996520950423890411674976436029024341956762244685142089456568032327777818280402353171727161613847452643425617030040388071688888421475795728132416306939771904869321017748493439522088977977460641321606591235428730663498564951384299151193754156826880464034407400319164875242281289908496049108875248189766295443946375362198306085302662976776229728237088410640306798395704550798642556241329569706903126069372722704973858490635481194665353366026431535545612762002245436501409287070103845024942299682469894819311063805848963834966842315468958573941781004780274310243436170639373226671414047645055320685254527772713379959897191293351095335218376237814482821238983318392269540362944194447793933862947820856539160276865474221602197454162503479486573308748696362146050796657211558568264712564019832368722180162737027408546123315314874653193936261343872784984098267899861969122026697545901203347487171527203423784853201997739410893991832399353436083831944835040717016050019719407955692916944124826846029055460248055663749256769023585654963056305499094738338682002253272751014765382015718968917643861760384669147127050209010166793143538898179926138949582056843152542717333984584967784219554228496937753821419875398362804151385327095150706778317618492686749245187887825652388078755933987418992394106466084284159517680029189967446045623476841746284361490524099614609132990782507767172994873799300497060952190291591878815655029486924994826388639682384956086850057999208125916980957625006325227429775722353244646312991916029527828387808637437948487816007986691844944952033890911819968400143601937093305472219047178616199521109291127917001976672020216396691842224134953526405415034347849373009481075000992303709153882015508200330120076040367400475028238121723533105469837101009657554881166142817419714224111146539649408810687135316799674897427937226351358103899882545160553672510213641692900321073122343007239955691422524643012627356668178228590169033995255886470851754284397934232749253399892584039232079835993252157435842523037436661389938632000800645747508807093799846274709665708094369299361070027345381568480143981800226497961654983924247214953855166490613388699479448764070625660160551717891131051578981248406744154043863432180804960357763693369650750249675465965351715008599750764000455954263701196268335042396940932473254073217465365771218978633545568241703910378182426567244157818438494538256203497811749471046589508232140820478205399922170830963792471914357052689273788296301720459841639676597939924684512021673155759406108501108401501493958481324314326483170638352293389835732862962500645396532323409016634553497614539777543545510180022729878166610572423124306235039912669272559398387044682244056902175272089059731403171949939375760651704430817843584689023226409067025582563156527103991987874499600566965311694201789033319307912876404500245292607775735544830851499121604626040796635700429294141521078517939512489293113108723403687549333211997169415582242253234526991651484270807496498243209108709130271922073605282398890333776482440248216436744892838932717872463012952137775840656766503422548447952734389296263521706924829572233723726052121486755901243751068863616862068481075325255190808700823937566799300052564004105686873213457742011004302127479640462677207960288680754533284461163963670296167636106120956409159039226759772561277082336910179793240276009477905049390594990355097623285524569201492338038955511453694537989642439077531543866107961725493579716448034461266623538041455573676426251445905719258022229306403304943177399110774599480518484341690301247105284001145301170159264176031004668798434006763661357541593810739490233845959978566490063310019258076179659274890217308818654512491561008456492191733984184936400789242534005288512740978260728184499362334439677783416430328617074655574470958871066122859798438328988827786089949825934445706255208466693362073645613299517534649909660709934312563597490296567184680351887876443719273432284967575348743806058683938732087107123411960330893060235219350237964753015141593728621182295259067018575855904869810336131061953704410772086023300066943559822989972003894205071241309633012473989889865016134460416369764129918551398564133480244010903820420980509818816370765602535422885206425047489586808991794668611719325033248230241059805584766380455213789323057235020097155747602593772076776087468148213452253163020878882398535566840846201887763338893823940059693823475558119660440536601708515543140928633570921594481160175329658341333471773027110597090517811589017086602990160512479450702430123230670262179701141510682002268139997507258321303561667949126100542012864532298006726890009482097075854102198848852954596019747306361328429698553852265238161308896659145091248868131259535362960576603197504295041188439397247053605789479862831714003968480764211909414275681202732454233195931119523950562906226110099643989483816464487458668307548577853287408199375727485219741371809429677774117222393641356033211909334407556787838113045199845148628980006084838694206218527192801877804248668080299512897034732944631709460038595125453386835579689058465172300670448889684061086304061213515520387421392844962022257546585820866986406049865542588590814553099484349384273384217864505139854273974290958570085614625618349527002281417325367653979469127529747013170063835415965446342449683526350594853447447210780561078108296494264788100259793187756392390432917853276342037522975657527434082950845479470152452608993138857831239117512692255667572885133404397696254039311749337139944952935680106037969445956859752498772673480790732676182452335521216214968023449292542886551457337565576594555709239533428142462903172781540399834155641983771801898211247608559555189995062073007140345208155033298149750702442677264360338737539731484313740709266544922952042319900734594639311996535056807332981486584110919944394627232845367711284847362246063313602859105963523719387163459869636443906854053223193152413546932487576730463381703029447983522602051814944458504961203269092337527162355133526234320721943009358815033935989744933526957874572783140396703969100170734149325310220632630169252370180120244226884929098195551171956120838155014485836571665102690866487173238190148609924699131546082001992705047305688761418932981083102352648281081024854502208757221283441343794849997279202583543417204425984693274091417821439492801799745659873698287428268267484421213715468232751128534165237031653070432582833721123713760969593993754953622322221974659619332529074042487602513819524269739101756371975343004479617825043115331506758256273534347625253914251527570478784376788524187196634624199270080257610839274976226365490018653206454995155802908398513272627321967284783025385221904792786893895387803686993188466031043633524373271546998988111864436701140284262026150473882358997472814933432570654746370224518872890612550302737919026403965774176068989769834566464705204716359214483070995843064717275076337180207145974456525141885050371637738189029696852844092581931744100555760898502923271016008982572238173945436985296547694901873840464656437307131959011407613174282203883313602970852614512349073071476245340502454237636666855757401206040598869556301144154431416969860740322078860031327905539178696741635552402507676530856322427378471497460377840646093468129918719028927597630701598408877817451926901476910300302349794585110001808866062162868011109151161040983273088089954337551187183173786558776487358854490366879074169182538313306362338205820154885449827883821742437580549238159729640619631058215167091903263187309338138501130913327709303425112210972155056104913870504262198052602476116075059710379436647715293534917186125066116367383304995648787793656979112931958782777740601075333724327900097324072560703888008711373096596344570960411750894447911916217455169709648447620461741281545361284226015513015895258628069570639244435478023905168613385498619266567622760358234985569192248906901164598660961567955415492157581283540920253931708073781465078832035266513457070655368569928112426567084480177864614974045492118431227621845224410884715075701908834950224375698850494542410572662460945832095962572872030994776540107398558069966198019534500506514501054924018861089134173060759238439461246569861605609094541772907364009391321956768364333299619997965424348026569406836986706175874131676505060271358825744337072164588195226133970545205234412809231730650519899545028585383522873787286982917275807824209826106060901509252110908989964389297862943014111400676287749920781723794746209168998389618948630773060274910267038839433524742434212367121770246101160240611185716870508244049162389434350470250813649155155104327250747941024737478192265205933551362553018121964249924882129926017740801037198842125474472160296950027742685077521758669179938013625842241739856076699165432757061230452867280707631894705895440618842131571380033984874086809414461845854230344951448521053991248932455486659305335584578277144237743385339208241277632165967538326650643063880695569156202622259469414290079987698344209146999897956832667090414139806863332515652569687878992257432796139643702654314463933379900081985753079788176133743609483928302233803279732038653646242498055114022469226478931592944918040382983649034888638697564414855608560537177228737148228236864278113657203947496906937239915610036828075141178473782562212775995916775814038532986888513655232313938431742258535628070191544007763016347647781261324380248421865669855274007641051190109545289838256348407045580809052214769722042873822020644511165580202158137220466347663335175617990500897780885600932081454176443903235241939731547218920920202474270405857913543792600976807636298756614782644338926121213456594456801042227616524183764018673453391488079001363603528432174780401683146726188067936493046865873646311483282698049202278762554540178509177497728294675692935451666098641948145836444789096038304582853698956080665666190360310045304720024226393881572068674690061929873082248490016816348921255433754447580388736158658859248597558742783859992954170991722511534025422229692234366177781929653313496747757220978430193818445059850750805649483189679220583434147890510257617490997582001234724410285079412318437601471421378295110218735899391708168680559881335469913794537831377114135491971243465810931127833266217592227589369934770498435251921073517573702005457345130587313221438462087602775184053489371323766290711205526949053003888228042048082108519287610767728145489279440322723628412479431926441924307968137038294820058697420150132353198720519920353877314215882211485974318238790989199325393415037876899596958043272517776898661258893954420139171306418862951066526896062414520844803403474113314880043138647317158446815754836531670512601746640760728095967213272942245361042667928094697735836383498228114766916959695573277028279120997926086381701765421015111581109268328748595064626236299259249694378182229169234325485361604152514206369252147745980941988926814776443905376111917463026074170414492241949800170623866816946607989247516971850009428744446624100586380355863065063609572709797349307096488907606301907923346170197456656248712884986738267854626894512094622905482754233025173213282785316517586934054111845715104834632832008101152525413119367954561261216103197427832103879548253917431409877065257006037671968383047869291003267483442066840667351508858609166297657227799692600386827334964187583321180809168618517134591156850893149404481996107250233789677989918872582686705377574351246508137986281348350664313246627092452365469835174070426513698824143308835526319454754253248458840939937846318673381336610310058114645515187730501413081566601806113226835296397114624010498314846460439520061637354258469826052125453859150536462014165930615241377433037246441039759850015689210279093786786031851767240469599157234052900381676072424770169781521486151947462705461422112569127225381590502039583051468585003602420054909455026826185095875426210973991322095029548958289174232981343154069257570588015736545351789274152712894131431826947690258885478659919689883599904388542274846947311875197488771215019159190888581326376998121590808969182335059079714874613336803970635003695553942259073453693326389696162384254104794629483793746381324612408253069026914650215171965524256788471272297526679202803841296615750218468110886939399252687943950326728700875818861049300859750196928095204823757138945438844241621756626373518033643277401734125942745582026754402788121409286880412030002270631808259318676648149044725799446704594238281114878611771247129940234353193476389778948446256041745478020529553081502542980157090392382147214574805502696844438096038016443726195300440399081842658748795326360174773439634741333029275581820008464886098183291707862124370345940428150160414770581856441322231887793921639889612736992400225160535128293723655737319319389834175384397083090358533308571836931136503700819056545043298422099381490045445400448618221405506052871683134142627896441695333980296879517536667847550967256739077347181693399759001189891113962465206160718856491192664269401606959061610443780149866699828433246525760882571010899195911118083503036507974281230709395198402548016944626205923636351071990148156774400012313072541025605601593168405328169973390707153720880901326541540840848694648513376227482849916127474705322255057918337197829980217375914243447148663438084599101392554944659667423730119121569104847330698050817129727313806629229678493165707003108305567889791232981303751031746783401120813530914660733675118762187223247896837038279501239544495396758853738446641347202470015885201761312154814372133479265672244691795625863300306994583628910381264895233888076384381880921180739792768314123086880946917176552671971341129027158146752944276252132950154301153369038922138410133788327539359202090519420939389794128938076595308702735507730422191143004325668462407228903402171151273168905339467851873822784851582247048412773926828056517260376445844006828466737354482592496916214239033889318117011389131501922285410738181452292592185148575252476183848077583829866667556762888310086015263589358635712742177728951544583129347098008471782896727341290370760715970897838993427926255738188956319405072752087325999456545608586855358263133708493406413934913749179077218228531160094982703667927892358788431608491838953362361576576833422289592702393915386811958152996066452081886184389697200189356785489494221651236101718473760460603829616442733117304025869985215372164775363206607206123292932396240780047428067808124542992795093505143976021192911303780217039508295099069944393911955003407215741480177592299719328271630397133938003492679133416508911394642479661320947250898195723750491133129166984273711489586628649336133970303624716301283210070841520262768996306818969526666944051675113293786905003412004284173942954144584447541246771850871030194976373064645661863494065661595559022203881357136176823477846310988547480314160751831305440342811270350719599014203058814923214884129356944529643170313190357793773919016569125771780698512180115203637847182328949534446551462678468202630396663019906922610623240862574936674402658139719248013316060412804309403011781839533845697347778755496505226719892039806465088098765959904026835458290840488743590121024857071905695585182299648163245701570374833507162561778784026024807954364314277409752046296007705952321593783926560584763183164539460869129139029707529324575283112206316530779455997093588019101795478468222029813794967339008709934835236592521531747809149296359576803641645315741984082949704240390235340265922135259853080332431785857740605690039517496624783114615470747101524109270990190694605559239683056148077265373998499618880204526136957223089073682258369725346732930434907962315838626126344424086314103499740365508692160500462809793942595737077522421277559627928584177313693090364594363844939823392918548955367647356087898997197780703866209274631851985085192685262453825870249573805010993816323870820228564474021890350370205158682457112552023153087809016194370538717681644829394491186589768122858228286305889861029605283254438604524159887904370477377371368502135393822653949023421710889783710051749817597020686825702725971239990477731332089067421121200821839867778705656294246938200423781349130666302875875209256477327316746369664746257061200346715640903478963148186821345980612729682565455767498591972867379753810674217385801948693932923297854556100790005472533051670818549550829573316453038966728057387828058258833867439567213201612236427190239990318506978094847298037705172000913056269672052843166496490463110313400903781521749243406714466245262478844479703267080920479660215253622977798413035291824916677547333861097577175208925700627095398419276724681021271464465163618290386785573635507001183672415428954047748343284348374756430452744506808442943288003263534813266047601721422694003496285639702572562837188280089547602386663065497470453498437664038598946458144805319509199259451498233613653904412316740712966326187042419884078656034688944098073565111719088416213133703832847527158014023337408746055090197337083604720090201650957663760378637218832003863900863187002521159432783932847926470562069061394036488309455202394372760011556448767844754083561603998488513772923034323530097939678336983009127779979497170462853141004353493338226748496581775235312719601590617282846213714010305334392027034513019491070344617456577179219132414373649693969048965732825756691327645310834456871594499005092022404757994214851413924545725326078271647130569958137234896227241015135814633935985739176240573446271578414318958068767448800803490104731595819072414641729115982896970259377776750067320383367599920898141119898575770545690088066735105347037213293489055455497205353010557324696610538066099500702754752262676383165272527915483314536193916719551030251519417178123912448276111453221886677717673417406452378993015037104211023223884776937314255347983888883741324601694849452299051071089558793216205632208515653007407950559249445974351034919044113379156636661772461772342505771351604426630343126850879654103973473927452905140551241030298362589336235834267865532047780753909090946014043806764382911478302964651821538618920140071149455186269299132473757299220611525247829166545756956638325114786725256097578274064438046070715424617738733768071930679719130310725974717095148873747469503491520242571874386619420798287288310571028157936402714634532798473494139024208229738660143735485609080295713469226533118264067965254434989996978086293470385536157001037969986461806802893285729725290142829019704050111709396040179940077279073005957406453592391666388114459764187426920093782970522564055698299485145116253966586742236308393508148778211469714515626421839723245197256393926186481618297743853241064349252541686264352270431372380466259855686036939297507794006992109272687025326458806166692255729635224420485867181204509342716663189051926245014908460068805223509444346582740225829051295030497996140166077255644874614627097868897325672101929230098245476543800864374001097572366609241372318680077447626862945263917248970267674567927348695426329629330779938306069517425895653753303319825137466974625871617196767115785959129389464190051959423116255426558903604042611724998909306405095319996461071997051693828158842491614923639600111384532591716540276495476617295659031279164951736029421362818726459267767827689602966497224763374234588532554323573191763216539724350146857623916565043387680021015694435823608634845735010253174638070912058156818796838583945104236795876705668608026594829523255942029210268875291154369222894717898363306284089773039313699219114714816289438323424291014432554651237764299212082763929737715940641397405209230530964078416316554355424023706082178182299215828215654017676697661208991448060059529906543762363612026305988951007723575565165921971451678367435512908451113629555953087586708377800191996181655683100455702282789191613024036183516412231627090454293979674128235084330945220216062668426891971808149654830769221468092724377218327397092955067524792981311566988231593310969899391225434479357745606611269046429656407405419288226478547979797445592299821353002931553127176172218631970898223531161069406848815755289481620820918166724813128908104623769907013229353284450081408941518931109879654072146182757480558580243538161513918772004445850657984792025456944114779663992297905320277130234997864403442182496163201891811804326478311151594681114816472645477617634978713086688756952976260303166684121463430262440794686978285987418395031713942900135590877225577053738582054889531696018068632325879151070588932716859422071560763890785976077655084303731907717669314552391351862236311427116085445804084750002479987582300587088265491462207872672680636374537598067416479448481497389238754728459343875279286766443272564795561569831372462510454288850073348951302504367500924192903435436010856692082942618503883972921380359209785263348133849959272530132582108608715627994119122426533013518546830147588361727164882181498350287788557539659788906106832228618619529827640257722566057247446559340325286581601438651853736161141630755729703799944665114114054079427147537781111425513397283496115287533038864432816081165190097196055850403199345652798222234280729918171305432277487592302825294802655057174086199252370629681498124204263776859881953959968475068012031703913507600700194920848368879638514240583538606896803775442070642716519419088448177490953805258104482473913499622829643783561309374571147615093589594579265351844458244073484489100939557560229105606244845612560043821227900342790703931871075238085638921136403935835401058207371156598072563030772823585173136193707794908570998474013366850020841298191122359596968222596454588321433935711948347789268345889740076030693945402135727476634284866657596679093779764676816301584881677064603897065832759236308140929955039458378138514377201135323628926420377834841213595082140727120895337331687881000034208405761803890377556602679235794264582504634285826405824664704136419947470546611833543879107633145242000537808999550347417398247970896323065778806615087882093271595756544842616883205894028796721171980537283624065611890799913802883209434331124691268141432182067023539066525496563617615132401567956891035488079558258253280000374072431650591530590694165524402644222655346570827097143842841856265032262749319629589024754165345761282409353540627014400709114820954833364938657662856625027302154425979845382948191301499938168390326408029823488774147168249587848181800555206691015613702532736823984640258918801203376500920647729115868497705912814253936463325614938138098819347295892191223730295843415750510217738760027425700671307213271558502718326316567322974165569938789693238288866660475346398736332850561625487738543568830057262497407546851550544779206649515963229258022932661722962213907725474952264621797546086820993904542065712223201937656293829780886180306195284931320849673872332603947486973079385678500759409394786742549882024204154706671982406807377080366075125464173710459356950619561033855527322098109391227546654430715285653966082482186099201307482570769885348946915431971656972247661616176670651988734448966245862862515222538429015608740899543421769517541033533634037347503819645696162086050486414145849222445318556939210460917094993512309706812433674499298196274387393132097040166953757317336392406620673366066435460951047803390531981705875771238273780252473499031335004611778877727476072034257314815970711634540909184231751982744277637794025829492137246161424412299249358946143400880938914467003203465218983727289742397437971531983072961242850269656158846639448405567776686058195053148337097686851718630667649597890678887068315052510880215627001700423292565257755357147488071703303840646594213132225602881837518818002778199301674099864410627199825274556959680616423014905837129420328352608681346582068661120881999425608719239598657559906884794479895728471897115760112663523321187199746658400358021813404365355789510224096323064467036239649691027401415384026186040025210407010782659915044971893946376538974233959444780941259644679388105954017706171034931790601028584817942869277680251606346981864876158623370152516023637181787999034379595511508651454025879726423200572504444194331712013746825419070853107215208512693984662801771110264244563807915882495667434928755342215336739800701841459689064069363816415346937335804134862168236281248551962820737251711644710048433926771290470954498217712459973537949895925018192667009919231981513968720392407813173328822740618348993689159625882779434181259782237468233565569661617070377394245553860213043349364007531953398491086996333561330849820046220523794212611273864697734352984061412029335747698542837985073142302960860064583902032668329710664748592802807062228941198468523711846288178252337801817573627386563385765251145897691425173865797681334553312596108921679675992162004777773660173969815700518930556320934768057520823924709307505648653540147096925863324475352400235795142080886099352369049792716495297330731217627022775828058433099277819938043921726811176593651677463485868115239136038172399380436191370870417832458368707326879275915124213279306924936806725671640937958115437410084474318079847981845622953378315920943705859879306743149584212809177146937159988393383659676333285508452144871734987298280228722459721110033706788519570863646932674715906123201811286192207037816689825406153183076538439839566907198048513952994033311865280881232170777351327009709343772864506905524832018864054459121311179044127994901780460651193462138351820079194171186947790208647877508811872244776343972876005334911972357654068682019368086771886415436808009906851236046326960994085099039694836217157071869815680859943192755078361763106352286244358297577723971617124439000785272578744254553882651665801545049441516401692449890426834573456261734020571401179382531553966917865085328616022779776182844821286729462937149110911635104493201078007237074496349256912189049313573617672737075794898819870814803294560802701424574027992891569507497718776325901218558321168332456383246354264136630474420695339068746180487426957308252892854977557044655307253726535449091655058544905009080736081330077728805917621134078127022071577217991846919996476476550010097766017279646966552244526699337699312900316835211790528327287495447512981340250629138109549668572838779529050442889661515542282376017449137351386273975389837428783645708577787917772282941837862509262813945141402838181071249937085703496006797685633696864767208107940134332689922920321079715285432230936878389824978469977558977758416212889666118309718939561805589888734788223858629836061482819706388537663870236997190568879142001500589327815766795541265615324077751183701666268023336345078784136697950895864028584925040484933796171180328045570796932170830887117625919959435644139714952826220987117939305641225493818743814308084727553083891726934629489967863754936115462433363099267699468701922308814839034814606660954452470388376120831651420100763183375893493999620082480099860462830624324904927573357191805826053249355127411073586030225305769820499460021459863975785058321391016158208938102536640432838562215605048187456596545074877137045502581458868787094158414236369582539050044102606727943451061502477228062235096633157361251426679434140746652063534546583922261146323557839399370970262019162213473885624539830201655471462084762972652574642687233863623153135535568166360519035718952446642375866198041144802521990130259589349990701834644312706805990043256138711210450689055750679076762563050384262622513729065225654942654827321349984841605395004718249856560184731449074269196457452658113570265107162387733468833725899778643672591741155701655292484206315218737915952464483195251598063394603742186735024198039034291728820585693526786658158201195876069825239649292348914679443084786574974508366962329607901893079624458748437251749229859571678125574842331673035806137323872079009336336925742457891953867586676113412582471603070894316874964912571672763444303055435879439672798391605502135148333240544829591240121878313403045929441621292750499845016709464849534409152471837782557600293979425014893421463386758834589638702611272977948184530344423147131244078498214846735862732653628625501039736030179463212553543423298346504287829926979525076211766041627496983635949960324349579121030004621920146211722288584413301742909151997456174122142548151012748826300946974835123007217022380251636265424573166829154744421810027776127607297892368258611620666702210658425698166382179841203878410264487735566199629191877992434897623591813120793421262858085245471431809776763721364584043359927672555158766872926818986466457737181567137271273270691744607683702302787924243821403830439878125470062137965560074412906471083531304202892912152146345225675356683968136278189995449676285459172951332462312686271207307031686740866015957099166315864652238874562344964515990749792099459034313921494067984830272254572430514353045490785504685756559850314186308483486501057512449287567182899127645724607259255296433846454729452076411844381790283425846409298456812175616938935965975740429295571529150768297078020239789169692521995691674357951072811013584487803476120458651798666327827480150636490227523192057452153557288024819586565693666305469970629511442206125550456869148032744860281726828102742488640261601893418136540881702751903632798220382703820898351245577903536165344698442851334548386435254810831284998328941817291612083907139068486878921381010367965044352512042221465614364722014989420021438344201240970146623634385827269296108625255251189212907148360456679559516865330531054510197832165741762682855934691871492472425479123271529093087674353283875056316259536391996859258022570941304541646785723973762668711162282093474137383953097453856228395401248478081748766221827151570135695466014514527686148821945134110598019590863768978510290474547665743821518113451025024651282130788257311518251357320827342206955041620563142444929775785418104799619444293639466973981359366911184515777799264350643544477890786688566763655567510133020392064109944674869723800189018577123739333851891151761529179033570357835979595544489785949895424664715432770670827265189437837948064033422143377240478678694063066207205650277370025852374393455794943717575948222394848213090905392311698664096483735068307724944504687929063370538796371011704409037520385264029625703004417508984780077854740069098315941092887358718953394735828847351202477751441528641433301523760202571654663931351516958028866473153834042344370579637648669804291749897294330983715121568619296541976790875435900658851911949101426075596946536884456188099014507149283559365332865878073446563488103298867967164678135738438860393567548126731638346326081522267743361034256279904458071024372908605563941984409751355348193689894438585629536549986258860485713492088747953260910977030346501294040228602836133422350547868311753104804378870682882815000408270466690072446076608132834861647163816967844605155176165371188763515235927858975553158127353916830280196887220255186609054347841455916346645871317346752404232051378466514548485210827433728001348672450682567941253261976165988765239668887392524079984935281412709665420506976947910909196918431017573132250706433908790786086732900306398353516515980007405308268960241703702326706976447029760260469815761395292209643118412199081244329745349697140355250428613898420598735576265543534721231099641807557394304984758358977867534082777525594534690720294929013861369117193813173601646476625497435511923723190337566403995542447783944298351828774246412327916622487261166153119556515318379303744830710564919086376924643039253332818232102651629843824798894081615315260981783582054204757574239190790661089061726333635275358836728525323566999568627018308121674052801800025536899293369386788116744077729916542788044678413562009362975545691518076713312963755314816579909072931041379628475994177907248909988399465812988705098836726884172624560065468114480637174295084587982931253382289570642635558951957479210047487800990674713490817711659702787400484855846184436218804559755361397818771100160012097380658520602274673984321980195069095331623045898291761625860113602182893530594673628712855570420487403580738017522416010536449207270031358736274465470777935266484464080671832023727942014344723474168049821435321906618542992546902783902394693675658550471520114175000886374437528098633553566630531447427801085599461612399029562865316383085174797943117702616621107506672591136795657312610790687425271321020893420430686442656219088980102687881677586333919879360681779680015207386458111864332223002760660979237284918816522192627682090188547803894435603204243307256873460617370232452680436617589619974446116911030486059055319970563600863393574676825493273026102929726522199970137847456683369278196032684120538725039677338741009430233106594985975756289440887494502324471045141157592838543190436560997944177869456505908673727940501810358913300780225183670471294785839325894520337371154096525172614324582136510949286496372790675667757029078810824521987372794038199950249285273634074361722349146013133741882615777539449981758244493738170620495051672294242853747166776178806443475674224096592080380341627847256942682902292521252384858533734791367159246949973608350100908415999161378048415807766179309191594718856909961023256006367965097758829543573818629851803285928477041372436648951461450501920694469100554517531628065330522640076777089331089867475923631142492119647379838595425577854479230575068063861269020901325063079395192221338609185950651259496621115675247703172613236327036342371720466923617527296437171794845104623856042582227382057466941639979217811594135596464692984830670920142577974238009352953076421311879630325003384984642860363407249831285559398096274868244319578185903888755009025913675504375891472026058362137766642009090107059305338719095934833833029991281661449330234883242862780945037445941996227719259121297396187159202084731553469808229179455741106929562277074646829225064076988440475901917347741466498926352361347170216506656059047328036496824398368514816737296969861572310728805030865542054653459983217996813769385218793864713741529934848299188089577576066975496074257348997204999445924747765506558813098857791532212534825426618429008335815330042553324053214212483604361281922172957838444800154600298950501182389646309785607091078801026493793765650947187932258338844608895546152946266400196083891130912856890749524410992955918508708629877492462935098430541631892065189010221083687385076860449558367008844971994147118076441320231950290439872981974058817957555924943246941547994050095786346491078935958277278660074156011277589271569746691856720880461585956897392923464608651825973480987627803273578312282423971491807934995218964891498748911954466018464859793933432798169521734810473007464831253068075519706380791066795589876645300045068524334584450141943807605732159724289332940953577690289281327309503733441374448424049652672649123074576028003390297467260071906965178930568460857048624192192189552950120649938297904522189071154499699379144340897775117026140825840144415357391257526878211204779567643328875396972624473187903295250147526864259374561435487996402355502556241286564188871149563905477942768587250411279911978525278635555326054907754163728187879421667567485785614162304336382407650378801560198809577238048798808776868188531550715521356754582486210745365289042299172215641243296548596040476034010896079300019701881603401870668767349301168067625375834101944939599597517992945290138196724876429435303494038404548902069081145170358019381915900539925385499042811644320959810429725600989398297814280181586790336160128834089182426560769657275476319967224533077566356514988924033280178529096715912155922079660592005166471511308401574719857331559508149313274438609677728968456286694798136503135660944529386858762164723841947266752648279780364616646165460093843200963866510587938358408749636141970634373244074406175963950405430230842045311689261869054774551230814292867131454787249367226271401948058072089560729540266035730001659184622869442970735359279779135141545723636680561351033735941605798693509445930764592536435012949183407465682210680243295447211988604208897044877259785222935514414359586661710840576191296480249689572963361908106473429291580124923341595072790860874734729777928310221170360078554576950931364786905913019289750813682069374766244097973906085819570369479562173390922423568787195448887076554041753864894947001250532659549065911585793127048165934568764771061383451657286356567308144810722413625202977151230115216366436175554153777313531260736738451161060841513583749649991446718312384781726612783229101190230569342678897476884530592788790534903105077614255429962938754841751963997912067148771056699673222538913932234015644585015038358971663177969650337608726334162566515216857077375304022479440398754569309976118475950363021128888392344959267003790422257102806512980545469553211495375827664971867066319707916922605079089218874076177663472692934300002854445172960164718901564120699430998616936685189833401054866295948994656903536055415702937086950368322581323917400113357891228386438186621427639112016762850917015801323940797165867875199335922606774097310151174226890239632200130165011170089640856609159641996020206039985951675993361646087251610537383060830138547011469178633538023410741772497712969498238933474609781466633088906239419319707976848862203944896652185530855371967667509635988051779747261793032691283182674862057809265256529034280190882705901405466374700138330258893616017150154888689359105694404497217202113924564847498885836600119303093340504248190948084678987600382766921817190867696601829782035599207189778042923618366306679457260518896053823472875932823011951586555180178283133565830986137316525935030805823962559082865729213865472195779312243359147323752403786908253602164629481320488457398705136724638246505998731146037622534977822103010145429875113822448213673526737210704666777974242250838584648872949096005218614774771519966024655226069621270620854168787239515997826861207922328864955994712943920009967608462614452966881819111809448899195588147137993148152932958251607601071166249515565937202893034513965776120215825001792716582114749398982521641313983316292159116787863114903503708046729113467566457367760316704471187228697777493720498411552534228368936469948659928163890293333295967050233310631864547159461989211746960440747930112114166497492276966387934136055436280135652188591691916012650170347349219857791215599655450788459028002419792836146886166968729406732657944855141210293316476780504320302389291620949699409462681126884776194192988872830204532548355595645610497507526105244255809386273420635892776828442281295814647347367073622559728294372637748776839928637632345393663445058464032220274973415024875765991021519544839141489452822383268148398051997076559268898315447157695118315551061873006768568040571230783243356862781303169868434085520815414852556772088289519403587858372024544781686346084119703605994692042050223895050999054746225247328128667550756059266570238196798544369738430363475513530101422313185966598355017290912266356068396272443084046523628652842323814234990867660915808115299856731882700013109382157619132965931457997811998234263059141198338941256260215214745561859783940816914555513000175131020838255631736162154590351291061800153799212994811409282642152270031879995958336372414326471243780519752445258629866091397653631205034855196870142616427373944255387041040934011786902848317324446696438392741321758809800049498861502455683932136997226039513159990952783701454801275952792565706687603394301212911978505936574394130654178468202190033810503607149529696827193408249954082421616396553900931007144638876203134913407756275562058777480798439458119495188200713205259403344213400124368874611015102666890106725161058423245264855139823924004357219566830736578634636284713947718760514239870777535371198854467657293463584698847810339146678478547087315150429087424592394613261089291950371011825492318420721043794200626722449362643509595503375838171951054431168732796056753298291613125754356825245646500812280522636814611597532119917066036435974480828856219322673936865606254293822490061995607753330652464844307273487208879767292696814797485326374608211517122721743446121372624336324011843291889863711234758307389741059168181881668955953718239958310915895586515510793911051537159282391972723851893459502417779055151515726497570872428767944097314530204095907691738750096132648370745595341535133134490003875280310133785644191147423502245236200886553420535485956209777634859173787806212255440225925273848307765179996373823009096197593801747525783079615632336266463730838957384671116709275064415747632824210968186670214207763268375526077611108988944964673277534390149108961636184144351402764581222896050603815546531573231035915735922758911349256900935607147977688700731954102283427174875749070918716304762388723409696302534078247465097250027224145260335082791705095244089375733331231982030215416350786778265509321713781712313716114212318124408063309815360743763950265425574723877774795160370760254863489482815303352021941346466963751432715280802910028162934418264108275919524951817369371136515145376975746303550396881557703938983487154988401323876915333088608396152038792659834262724317749276862696354131068465624484349311650896687484469347103405348229548440424944548029015008712091167917658606527872481257977534747880316689003510874585681745497070497359957113398345543688948216100537152614530056399124244539962580313280228578155567533705179614335935483126071990025851110866754290799917035370060643683886576034328421346749363284798134599509524459413666885886365358016564396724558897521380576361590214842158335086871769121384576004437560818745484730537879160685430938408101949720610599381353773087430936080254374618360436914874112722209890114767287794789539517337789411265620467480077129380534584076556161636714032813645067389621785209078922246439167986043804019848760595357572978480805364654179647434163208018815226299727917536184190105725391023526100666128579386128482872115114433121748164404005618360186728632793253969282324260140007259899509705126468119851380702881169297470365138827816180181143146872793323314543151025048027376973590692969718888934545315353695151898759688924675788779434750697095948389187091999856782139078432637031657987840807613470059542315330631356291972347631112370126374371698836456993918020402360170654847410448271684991511973761915708006875431889672294915351919561931247877010488364900343071220216932716448737890748697168890556697893495574826859945388159342379901066924553808660356930934748516271997000837266625946091636911918668340876039816053457187304488378784459945641066194649282790298714485138296622770697710186797262748362345055249868433462175825351994893583892640008216042578581501014868869194413913566869688314459862119923349722584933741055324623722317841154042257919783776260572497686118088856865797980045007436559961684910508497230735345599811561675513166841957334475132922964429136515799663255383479450766103289684869876281724653418103830016943452175880854960747849007567303970474979941243512618421371502775616682736902616881508892134935073218269322806605182315763054160723036713898748377933405015841980710583153109134517143956718801250305988695063116544061961806470807361237675368395022824398752860510511351814191973795694693638681274531652810635038346828357384405514229348007993668210804493606862164600676634483031922495893155954045816949724136805749636567933079196367152569807186187473119745962143444787453875567679230213614859728630338941823745049891769740071428842397668062831729011908574032503385452223540337598944008979329603741205460354384182007632588093628697893595580850949756506799535033458370680057239672681329462140754013128286368823074537737549664487670662370586745285605262876843710312085978307077429889423331966599337067247096895252498544582098143949212079393436556802569455922608937043796808830592173549902808187239423500831667258629898918865217070485809184394517416456009022597384114577622103057688690926001961997563649835723155371164800780419034073499583084414551229428177602152104935813182396627678715737149982841408036881971422738830208745015739858523972510668956996234962835492727345082689120271475257042705061118459464718285320545427233451594086986241199063270746182667956011701275258350864738849204602785712850234784675339031318786296649552070645507689584383918676790667856947756213003776080245180827345252143205516063315040369941548606130675953365971680023592160894781404681853314710609546833691621848065587071341055193617451037101599216136199509708650137780533897593988366937873954822789683336138162870025109398023076921640166695991773931224839082644791280998578064053243409137186218853230491028901137161083086808748672381158597421815653709296744655184929287500406515807192028280529922444162735432238256495251742467157748268961216185256399893656944505583510328185664131997626697439111167780948717936965736903761431922383476655463730888517770884496832380581866104908902147878769073115712614123453649639008426994470802551462468087502320398977365460713304328417053734413903893234842503181688302691387388458847942035579891651177287920689338631682700432147008424675785294166046964037538411912376432743868418340633769086563342469199412844660048651217780432768985518402277518098790110696764581909532313211287890901497686946981263359885419545567175712676678837155763126702761525977769925616437210301084993130354371898992470093957528242987296922410711118009672641573072618623927137157828061141430020171114264825848892720722572122032771300998294999206516489224551883661421595958912823752483606217204449590248575680996915586234438165167146316331004873922932262219431953654657677812098448625420396083011277674528313406762294368841354220939496071825983260013557530996909691637349665597450373805541787929382030075698430766954390311872706744220840025986793092414366290522730548733203749931817038992564161674496493569266521534815077105717773031882845221753638550909028760052076444558521723466926597049347060455327562960679060663231026724420595594961738355220588146676672261525390990922373470014065613975006335694487509687715208483235189794212322592920100695072008942754098085726809450590641548218430923520598808493156199837134863086316081775309934313568261193911313197553117878918315599227750248461596706646640528488092119285325699549573270133662891020185295971510209873181846394428005269519090433002235567601977870530906642648447231165417685422211916748623508214055524163362856193729156026563037485196337983124937125125846685449441793989395036130563585381465349742945202428280473039319639196656867950978121194503715184948395534618570760753296976206042126445050572723736239756574400005188506438255472818396964755953980263000973297590967668112501920350862913964308563802687805424226912067084666956677938084288797590663333851918316580733312886410779699802773881216321646181972297993823279225034392320715570655636931529218829355461902365071690769166585341141620278688145206333435182444586927795980466279701274348819999836714161593004038549093477123216230853924966881367722657236650480074286645066723197281356544204314442205442795569289248165106790636054314227622982051060394683907359874274419025274298058005737842467721405075868932757823896493302953931675436558263682933422786679969086201880895596168898194833665683085048883617646031216687630865949198367526097189379850864296154278013157388422626909720754930123834769332599468506448850358448438659834930060179435497954684711880581531834838854670090003623901656750909851974382608917629705175162644632104682240045354860639954363499876179329543924509327532211671851255361710720256583335435269680085114896326771841394897101579682237123237779981704531349779534409755378224041468783103118732043028771398412667428430830099637565151994256408235324995905280936608017708154802977468046987301844281722489133366907642573498314953015491797186038684886416413668203152784150730160382876090478550704679705102972376240049732679654044375743461492630923299395310213857334039465464313803932847546016682894570398520289897056199050058566331681025424796122497994161923808081718695617683355593082034329171118611940661424593023416858928325402281122375144878383804375333860052459837715219808574847409115965605101261021357390877587448522307072786751026934059525840044387691660888998376929711576754644468668682258216315938415334021845430200445567878616535387790068479648161154614774256766434666786165714321395605805106852492930203486311187697906757373061308658049805399624983088516297448323420918709324865566316859988821807634263361803803309370806856552116308357042659878493962774257427221268652608755377034324279721316247186562181502127210015338143527640446743840817921398524717656064532716663053443606587885020021620083222433975474388465690808482297610959890936151291814324694190177542972016826029260693628677593944130399807004856247227074616381708027260932449104071616943112721693245961346699250726493583327369223637207752705679531859869893932974519234065803202897787347160231747227460805571629448861637690049880287681783446200622032710191351233577036490080845554425576826710914815596736553858259438221951358015637711971679367020622245686348546905987780346589745658447852408819268830922777054604946355615841409745355423947767342753050083936054265338583429240886791409368144232858790092230529152799915905009065192474414170910047708499889030338563394194410486439219020225662877398462669712962868737572216188171278212356334904715499470758868040594632498061324505338954523862725524564400813036863468726841379219379578507749890278243158382732350331096708993301570664195240164048025986195829466611465708789699312666194868191195168899785713826088972016502211515000045916759183141379528429240162630759069281025915047690687227211554583699847244222110127830084214948985427598928757962681408284246202734481156377615885856666062870759798453898588853973591506784666774407355889621176490263887730463122881500824148640352512607007505904268551545873081994483614251750096919881214717769429055846364755781593888066239542018937490840322751020634892328309341028237894088989531725707278146698392546761505090113385627347482282653535901008952817868923851305483370801216375706186876378595480214881006720711402705172446818076076012994222575783785152623729804437548974460375910029399148776753477242411230998381469118795725444744960420094875863210496756226171098065703754579778452875550670681333011940370283684631830050668075306247064752243618574382697783983354212993579342251352034923550310322632422449618848671977535580316521471061995841040622119083596690789796338081213639892843731074315823093529694423351893330134370824326438532789908261497650024662233601347971746464208079836954651332945377557662272524462050785169967201989999340101333507207580771040382655836481700018825204873862694727977686819841244971301436744461773836037845058867731041552138029551148294138196811165301623559891014775948075941177157011650869218541147100498530766154450326362434342050527856128683711788698624228453711227804753731921404895699108618357580954983844456601308474652765120152251640460086388254089210102461583536189885561567954555943415393774502910066121558706401665298168145491504870910453636023369626790074204524510787476711108581603883350490730198454596575431151627225013288264132732720045864750400359753884115085871236676733053671651766723592347410822055662073897145896736124428601318448099009966194185512659140312448268215050509682117223862123115265230071316586542736092478521373501526308736450420970868697527750651953873468375231671703179386470783338125470305674216067595718124481724154900677955395033949743440651101402668832339813840729952577942686050980385710038847224848237875870249233921727160672323783759668280655877905336621109097334341997978443348526532435072253360398719460987064301678895409084338318327380095549056808509279132189616199663626200962269637110459230585985793321394571812184970469239746847119409031628654826727816023346641245867553153722069865707588845615920039276376761595539143811410641071280366418273848570213166476675524075009491137683189196875945945767797550505435913958847686279204416073899438660597048755736032076189399290784732570121893863512434504025611153110615981604106293472125903381033962210769101359206418442727572563624499218841929692845048865571680814766789660936346427193755563009580265716674060696704507005597645239753093566926721347565632231052170979726788201175673384420258585856309958277223767012426195014021412415170170625748239199375731539805651844747814978850715687141423536244332730212268108547082779756822570093257014058836963664043602801865735583944918479033626350155432400879444552885841494511564094270922406588405815702746990628262912354038024579975749327018239144762628671972800674151064615784260870892100884337577739685600881081369285756508018435930996339224874822734697948078406477677577435081064813113854120266818014621696063486386935182283330213466133693279168595030799246911478332513082076691015178579716958660185792729967194005523669049880576522883405403829572329495666610618163109789226399407301157002457628374773576308183798161638119079736031587212198313819620344976981620642398507522832773373258332437288216059788610987355191377855881403729865083817511632667454759408345296967092628169980844889010443639929417133550491721853044413612755372740438019661670623338297380240490629825860951393502749589875052807206731837864730248913057905481562736693420315336593480354522123759323198928884374803732410786208605622462175566914066496560325627015246939470098514711600994089128351947568274832967227217668299349444534067907365525417174886583901039319287413336870559291380027727314775486977554119840138896045288554164615529596730625328830411855501188829841586911577081853736377506071335054326871353825913285097958561423027436039576496067859801089379556543087594553873213235007603007730107917896408379918870861963208679051158891374126204838541157848822039592359433270452459141147350780545504033581903384706481014248689197256381168631933216497629814849539646083874849543969458515257951809116266545236733517450163608333529739655892210921156911978316729184425792575755004030749046664227090664322428513245440807605030997258302179025792182169082377943883480865654516580322492664139624733960511524759583935636607443829936677311897124381434507144263490668336746267965144875760421649004657804566810897623735246630448651394648231966040726712639274053714806002028814119479141742109645063130559424100563987780307683154549550715730058201479251595904602466115178393678560161253240627524204371192506137964850891981909587770580992490842085600103886023943155706409262296585461940599098696476507408909037102041073773228330001943441313189898291146076879347947563792607660871483258647930931942606503765031220789605973721194264580743339322946456217152992869877572374421745243510593701522448697613048297775612559901751454759543095729786727400721774104428762419527057513081889666990390251341804618791396391751999610688039579457814086994355792939886140071141724989460512023152862732692324098027034403935721351903458402887798823381422660989331849667478892669887427451477269584954658077358949663204319684227293905402342069936593465517594644019356968088757365135655273782755845600317812578547257973901689044629670212624861217876626477548370653350285918705939390177804647175942432362408204797958379349852045596799025405159404945477441760839577973686737690585564791827948871367856297647036197192772736875817422061934212158392214716939705250724783165836869092120660602977814422914515406119505865265141288187110649187969794316047996512884740365408399967083236314679272132449362698570740704713058434826329318845440510586619403755873250257315665275392902152362207415301446575930722750888326706370582148843196156531041890179125548457874634053818750561404423146119784513097056545369126825579444878042588295007696823218986262381111072368744992142469150404040031332186682305915435954967189013559031469691373622407761443103122648603764791939267717493540753416257102558871122830098045539403337048732823588397650909521672656474725802054809063989279095949756542290618460679476258129147809703755742924808981654174485509672708892033514269360692215766563468441714251418841300734634211770913388497281568269755648308409133263367172477250081903833257398187374366036429341681541608528746458725565350762115073088506880345696823291535406069272424136126383496243025222734822076674328244625195343816866329833335123189264153753902689802092306902469188086616534259713703199646563655178418522520774003775501336093586141637044909219989129808172359620295384773165945159325457512762182658826965023083274877952126416176015483903845869845831937117209368199083288932591601683152378984175095542145657354244770307986890738854236551194035529997686151218503691185811806196552576296458247439549463884952305229390431920834700408595906247758692673900383856751959635718838147734081913671101305078535558976019724131868873517693888960920970811996086393237611436761070356756751954509856677260928307830333384947896302610290498277851677349656630179240458141888901686110371492187075536854421284230029436184629978447099023892090870282586775997932900240687404128958781800155126238506698352076101525810292220691850589879780761031752744058602314927111485381252502212065908659017820258780104224742644030508149340088935536994215541242794024288330163556008454806114251973600079468367674392891368037545225852503564337492304061188134789864950179120395213927258935188503227479728304555377830648563922152548181723320806672527665964316205418059448070937337627385191779318699473024590811653170846477848979352443357203806146987009232700653873512378118935558807382761431387104773213306585242921769520098652215583227076240478674720185383578343770223504250814245712843756571479689310363418089373299722019185677528387336013394417726381562202849015960447422841069146815777966019357848536075667691643346140295482150176278079402653275401698834354341953169825972572703237672327104388502145755116078107849036727341375685054751283331828168180687923483942357902830465325709099698933929319568594221510427531613778589133026238399572492462565209238098216310022009938517838786291284754647499738084609884915717838740446198137448390687340591284238313992268355061730953776007733441551971134477801136367129304953999001983705760561472107745833441235752258798197320154370849321291768820404507449491093051786970567117701141965616954874695699554579466490245988058182052267828055440063055171620109170645496657728091231282730371179344888819275752509942568057204571560030883512548354531821670031202098881756656024815643339856121033521803122203872454617649277197607561639899925558844824712539754441995752875533816075238289074957943408478409819050499547223491767808998973555428169119866029105054819004663413715557369930816878792785736669646282662826784498376781127049916168005880869983507642972740292518890639492218318736923256039915873045117744833426791251685385329353340557406954661639399223125662373328913082446605159607568186413772904955157885328899061541234378136169948046390831109473541619189442527956102391550363062024648582096751952056686309608898274241602664868431018535792010934148995913294012970080979209338728524506836770635227193756121070552995770056852165473956309340145995070906849439995261099503701149114858356584035694439244018137587295066820507129554209918508765071118127238305255094270970180836733246047964391637119624816712878168808667228632754357219976027958550212499604293420723785566103352134288354032472088407536227477076722657032216145985308480701432711332327955896270335331133019138930987426335720748101442606041221949987395209820431409400117396015001163746493739333742500935967983549598081681749426411617589002974453790246451001157325681153660550492182290718208490667306837347413540876864688036281053463660636396370508400603225944423680684070109041479140807437243253754204529454923205488540944727773308677289572844835199306240623336014894657010295372769319239800791374246128988062094042510718216870035418271782469358852896936838712339508180711265203231606942139435044164221180458659728470198747058770491745236140621664718268422765043098722130253292080624410135651901924297683194184224795323048872227619999813059343435409634087341494009836113799290104049021651980016965345105093201186528895001349855481579764869199753554001996239218303715570495661114074906989061468803162745650430929296856492049391426632560049095467246245060386702779065977825588642987245795155182788954929379136186433549495607479606299394332898956071018500741297402790275983298534453665473738254430506492187558490547253663137453707765892998875453181707580339014469761261208012192364849601319145375873842088703277363104544410317520421681702024924246854339384818323972011733672714375914035732497421907662839518726209487736422890355550709956806448138539121394944076998176571221767587769774137476930080385309241470259267309724342514738979433308220709198444296349368273455599927565430849214500589594985838897219490804800211031010774694575030279867204560296682902433004901958656561523385066010860852470512592510723689039144260448041910688569171156055467655775413133784673435728191355792152125244163426728793514579872623606847687942449245432959375932256803824124308040441517032330354680593025545980840181419388391309913137803951658668856405344250459768630684647038529304228125371288812406383719196825131550640458658212202703344525150024555697185204494271266175570977907652201631409924345624965823463274199966965919096303150772162295973794133044906912354662899976787063964427543970530720101567866765146256209664985206977071028331992535522210179071542554910668909890157143522523208824935483264058254433228993388181433246077620211927635355605540181246640118064490748656792493045753030540635899858103643050669178836044633760072521059307210192292241895322382915890934128228750510980146316239573671434576541180542227401565044111311050586337680869378330384195969453861337328924716025322293697313224937997292800599267556724797579095349634141700203866341961453441828590549528053409997763087934339975978910568604133901260650786125608232043804545448631332510663723910133243023185466526509293911805432574169027595407190841762886773529998642546058514480703245585088002374921985388998257635690469402036938827446681840139984177397803802254291492591957492773178379574501072916189699932883137541980767264918001306438990549637448406914582846426124204961678749190028707996979188534126248108795055420743526441794719404034479651091027244817919032055597758773842727381310581436032811962348249687706680871902988723417289527936418706406948463980108956431535233422900314798101668431369479196147206097308580136150705516651333914433244858694690120492477325571823058188574716991463603187793301384759759861120961707162675773157297613346857048140979691548600125124206029878855353376478465112312928998520040610540065834250345163468563030940509789836252773934123544691012936261701989971395671039397745310096305490105448365702167199187220346357563638244111617093788893854939355612500904793637171542240806103438118860330575561248673326845606941752793440949702599774350146701995027107914478321097845715562188832741071097653063416812979334593467427567072441346943145162167047337673582685317196054281712858870830159316048841492190324363058050330721966018280900940432717917990576993235443881050324067491860691578406289873447376709234225782244945434828081265677173212580402386928936112556530820450653066340561490103696865856206381088416211250724374687218924209263026533476485100648824018753110775238799051914751301701155512593650950277663865604759932677726955347806327049303948934897959809117789256537443265439374227850627165326171004913012764765858878130048084071184414269029062542006789764961699662037240749990183839249623080167971334236069975708749062665937334634933117472389156734441286767762850073286742893474298435416914069489814464185413445247285102226600079613809607527010407727596892661516744436606657917119518927091206931157006078461310486009590279729514654677233831975300392998202306775086147937831034092325166793058858094449717802012406075320584269045332099732793580656207789144551244404825526930353303513359014814445164701717409678054134220952991809060291260715683392766168926744561155320928000933552341934762481168750783337505214486412300469359127245516840949343564359202084008663972887452644764168122243197900574037675204113145935690829486365028866513866718709840191265208719382146104962917716056112413262298472918197350192326469347606735917920473460195021468502042227254990605003905271739830882393469613295460582355961688596144385517732556825720040864066715726142874215865629365346667650305399437264337771175524863334654686617471029474257074711452408406935745933058106647910587257708703941215958349720801434732021667320029592177831146547941567632358090159344983934360311394701960236806436471015526548330332290324948488740174871625554178432345983583131736856741194821648828321983039293782089006668641656356329990025891242536746598742757842445313505681163336650379813616103342876913997790939565375874699178205295126606543587480249531054620790828692382531734870934885092202989974921677075930466511581133383047832465845377999596422451105520528225985513579954331407804687382883091817168865047464734200601615944581759276487831751006154057153340802777001733934869159725448358499570311690890502347900418269611277438910111368249836511243522173294127706038130263418165235751483500779868261068935781083578681115816638025428639454882447431521714465318821226560337168643885527949083722967271505859983902007370435204519621300668261863897112457539798316748358028660902437533659703795530174286017098228525434662822605029782281922967974950706846947014111471827123771794543954247545582317637072002093952480305502486152919425838074644561247566303293621119406438535126173363837578519909303377895635070998487264756328815771858778297353705484562184061665163805211633553595615713655488304023083904849905346402275363505322131262857984748871208797423919712980651571562251453573762296496995785161894725860193048018878841407706427789821115503893404172990784288779139603190909475642774628234645049618558957186727089305050991750825906016230356085410026150659958294094188223171176685610343109409015195560359419762952715191446546570114627356476034166407335530107840661217068804877676582960344592623864758557477341228559099455126197261503356980467429465446524107479989467997846489274548144629270461024277249451728542720251707513725879735089028835651237307514021621311702640482513319750428220989513845528136268841773267008825254317243579889892752698716039884633307640274102072542860753914632056334190051780169548164179493173488781224447251861194100883513137555490494181672864244172188026388165627539857333600411059599433600445109382525788027664814425790955484257632566676861865912705148389804415975502020223084423164817145782010230876136894006217159186369664756680115058939506917948617938811069135739111929119476457163842439850676760927015601387625473877555130821614917863311075676996932639836360199843056398867930350363110146212592618232432920230504873973555103880618396303383920224450218778063418013902925080016547655990603908806917718524407509635151958193085485349436375269314283472601286321556955893475903752173339569860535581813340404683458712039407449236354697080135396702968920564153270576178507436941042162002813859740994458039484371712237808591610625472912894185014337332011394192377699272849879216795704857208482621178953745099590160573191451033015921950477998616399735136343018127076636196256421829613557147414196825197784512923995180948027615779051505299624564676859410800319655247777844310184875368377693048120859493475149575363519083664510383481178383040200872495432943598018399096116144252080810246154834377215900747465469707895682559178102153564440601396893159844515933212019827378778074605279848063188533935925532640568047587139273617127439049444206400176046596009726741995011180194421994703076386808201891521069608033731147927545046918070866330683047177127699388843497520361508386403092367707966596240746653032058855795435358985947775420846585446621311741732136381937611174526719845377107365956594981659688759535272565530522586777874361969955452700888850431275909414330236429519830928170463636710577004082355626345787874785234482399846943780739800388210355197146779367439484397950422615555306393729577597612139082829477616090698661599524434740720825487274741637905412032043763264976757883944911594852617550814823643520144900684490375525495045287112775902440268289660239913812266687287169439142423356907167219748529854906502866938531390027800622281054659491949657677340871738526222585319584765741013650016883548356236992354401223596936006051229704848086706559828336254616249888405808056838747680592416721489925466769707042797594707443992401921713587689294557714824440483700282760938444366726557959205333286363821183436202774646087176456018236920499752142614111949509141365939939598884968732539054561689863096296277455693159627111291389068753371428581683265582291531673412889027734335549344788683553410612823002184662365260252030829905573599629412128403615848769828447672166506050843093323577916341259867252410741162855560887417648349820714209069639040582853918262162289982686959759493805904885753681523517451496466142696587956201997664381005061504180068707658470453477147005963307233577907943767064211961192058242544441864130889629668960333915001324327960992277835339589184662575993194526690242146365986846158650593407148400860403033855263822463815891581183633596643738185621040582013281656985403167355638163019680564587348039675160571644904016838278201603100326068032668396046855898129134031175368012912557689000970360499259145265139775772983468530585536936351824757233378044007504755143509075612721952284629606722106216074612377151537118688504003714786281788426461390580536475028946907239289094722636256621257205691977369329031393413587569782287912428335072502728595632347802504078961201978921641323874369299169139774347271497800996496729789539148727048958122750145899044623890586964294927230354129335323876189211564588764429713638978164132213843945580346265579131440291412501168851998922870799882033327458850878739620195842849169998809625666397846140216095059729972870961243304576253129268156432918037383948191514649529198853619766896498777534700409893333797271594905193918030312440938121636064272059749937430095796162204706746117408573410974428749024072224071920084911858181518124276338523114088091933869905247375517969791533483698607788473417923759000206964547789804654420961655824545657572601098292794621201603586459098001214611081297486526766493775485550163800936391440387470440680741730711149120395595564763786368725212586641996518155272682610249104716189727921996372881405772954371894830012920612558250088095864823435031158427250447144179924088583160443635426313119988381503447473273977326572582918374248682532213362019148473697626755507600478474750713026331527914424648458310542617927325595978995021636498056801672170239863642215138491367894696651895996369818952892920910915814558041583029638779178693541218300409986888887076505606757845234883714489299580313972269250026344239337293778361219989460046080519291815736507140605213243665711748651865109586655317669933181738303448325237239280960676905236851464558272384358920906669573835462780112429104142056474580713944479048166588098158783472998391031027522874694740469677382116151097247127560918182160321327115448287990220915809954467179102398577577600759370662369931528510617800162228001306895034828243805988974280780978633732375367387515639962500202688917156087205681980381321592713346498607978324698826325052172467732321585052767727690807395180206332392022289351307434265978605937025106926387895048939556321921166611355155598132690575754094401663689426009267552040653336553951459594430336472986972522461302873983497304830196186945556575297910677872775472113472308106665122026618370236590083531181275297824104741768120054732854088244838854668374142336505912599422868792294835077262714575470462006165094003489129260399554319578326832004035426871828068254965253831583532577307988741429846387393058843241116758545328754899971955023003383521326423565271107017507937488068307856033254146019433209677063749357415395330037478839909900702531462965980415264558977993948764754107248509319276032948979171741362137841981035068496164039387135610981878533506494822506753456264515252977403298927537561691817485375550733716370480511310820927684935994530695581210082285314541817055339623762767685236462658936773733428035587857812808211157430619791553712435643547688811631808683393775827893152246419954930016978447909000797664761987833614645661921975754528302389984112801986210384988301577437087384108280801447372876668190323709674289419709340243364458161318074772282133775375992468949488568872590487141814602376469599508013866043470594351749860090523183122013945918488907530401736869961254394667213996723140303493622862701101830211066751111569744130936944850884308639209469638005567006340478765610370824098048678842658505599647762752933451721794819545507384938113304238594644463901683723440199071880860774745846502332455205724897116515037354612483953355037071663354695583359220890033148110931050356252415751554607393244446202438951629450718397676169870974697327731850083632859062863381325773471767970860082863657847710142436557087371372940575360685199619901423261535191218781832403826601040993227680387025182826899050139287494337547628268055926443806446358529156983797510240859940571555962016906118060638530479462781011636883711150185564208324098816256980545241961108050107591342574231162743886126499208689264393552121508479061673596495341792033572993192298700945731199911697842268853665105393723073414833627765946108202750720135484799053771977521102080214881391072844348389583374523960791312644616573885318211704659936653431264959034724197008910572073105140310031420016078368342775492638478125557268114790797901786907065870634749514416252532134659135416115937735427112748784426401032091386953545141751045683594010162267754683709086779176383299513414680468895693528680453620097557985880107544175928524296410275443941749831975845436916715453758318798583064671534276462601661707365201502412509413289171747243577279364230528420491538431367186886237867006886699026954982422348265355688667764379757582173536817241785261396212923528146510190330402029598086319943328122202989858917413312941254825530968687233116292184678213100262026568569686333898603114906825151840653582620284920369110801300451065828997688939862230200298730202666823959834337214834359411418680094410242394805971295162152859580318258362458840738919247171307562713626974288333595200543374022971689775651438500239796312208322968868544151807687575048509919864160038519290649018781843282607380365794153750889224733309128902329783915701654709899025909633775625832771152197699012720654276736343144359633866983789906914273142987712102809813540389905181965902575287171101772553598109188971805969066534622525599610871060290385068261037365951903659809459038756802348958120983781845663284751012262558117615391139727878696566364760387833095845869521297413602123039262307275831620171532709809176029470213889754474404764535418138440232395192710500836541126144987477629576646131529273040826246467017087921767316215590235210339715859547058024228382702797149401860222887247744951501920484063908977847063936837638424702769184371401132639953490553916092843649937862708149230848515856910453657203421411183827241925996098440307151328839084613953670714121052722050610253405101940294074975957452717492953907938586063863227169758830913157754808342730845003458209437567851176238291813322850072395652673288180902382192834149414495655428426022137905886102004188339197317863254722606967863498146897954811292456491956275748589910851167660235201086703572062410419111398965080563101776254467899402821164892062993099395041626919363285250565907122368264291345975000114381266244639619402922612493139664600821783860242226340290988260707141310134022518229251811450745324961179827809809090405986688873946543453374152928352732068452037422867061801875774419308457568459008304866895218185054620583640072765206482316024479229457650350271610240236048276091892925914186544310797306158572168975813014599779416671685835670145627974813776287791201997077337600915488505485437349191072444887826850797672742474988775037169509964568506621052359813315597357709655906404999570137621979292143842319021934015133733714638856997560257526096919920416796982308783513389340972127413617967133318021610655335147840122718050005605899625441087429177105963861488871216534202742021940010898234916321433410966455236456415744254761628061499486226281979471209953326569288357570768742314825654762139665761587018860883087352063421381805508095387106264331097921834012391015587323449789928640434008566433244035520634294570835086745978222019072043491820981652741547556192053287163770669883912653893258830090785933097325279803007139032546111667906126220914849586424631374604742928512122584090588471531943843113310747680446329529101441178853360841472418307882287955388926542866644843467401260175278300532377950471739461989498412658617883899732766773092597723637251124093693571530993445334363159572110004778061319562566494190266100292052756670249815648374796640972093861428742821806717729444668642296989806010450055271820474193533036594764842861974188173599121091811051783171735572336204876797734979795164258297228610893435015799839631133567144207775122452215944588812353931831789842776790776195747512520272576345924105999269154185950946053770947153664423368160345377494478203803147994524854190241582254730780105109221383043888730097415958976243928516827241735402495335256497883617447651981462148737973733502013899631749840480314174733112535768108772820544027530157949921224822818831585990321764218085761179589830507631045793941516754013599164596088966112035636072409926071387687035353083602313716182758794943707880262354513499947100575161658408314018141609641484855569557304840323932205248542084091772149915796670505394094970913094260358442410735665967515059412976505726814953177565470672315031304636084548358457214462467208837762651946049230729108575517180870401192629859967437399667039842997856292449157836794560501938232289199784202291438461928771033981179532791964008706484999927364161019298282836441987022831823536960133729526964003143205504271571656300347801719246420651854607568110387948042645886919236548593033626064402769482209740683542342439780194853171920260633603021898499877395705143192427941574283714669171775653622153838039556125883362532556198988813839413151905940783614415697879733902202666436676056612603417723852733817170074654328762267357799173442064014595759856058119852043609907487862010633095050398949713531747581834943611833358525756392124646558514617733143009987470829349366305014653167457492149127422582208884946092094232114334628251716078318242748223680631197587626810722779638741191448120760796135398449987832458778085584707914035804032279332157013895936581773539678475775385919860590770257149851997929188620717554066504414367406195975690246107524513634966072493582493815286236865926413923632758445954235165302660337023066455584086230656244569711087919783006102976488461105742426529547417648662520787040049090179046710359849647006034864761711029493672651497009872703284799059993478928185130602369007493095737937181386951682139546812959146498623414918326207550263876824895095674867632026469345517551029281824983911964679091823935241871555252286326831894208769977596787361174983485889930089824631185447842241011310191145821330652805811241230053589649036369265243691936406940486516075632836894857192461337719895892533652652570482026720647698022098371415108748082727121455265654004946322613711755652255785578543862048439727451281124698930395385132755720873858613633284515498099912162217608194229832953752884308497481526598950959603170767549866453741376304678326072883851651589828190598366244240984123976754338199564138877339025561910404340709254058733122719515004390733257007402291089271063985702642339450723016625621780326505250808879203903983023905630409308301813017261457073083950018428619529012573812442180643661159699702227693367937704896765160022948925518417169030129907212012965013335062700714227663549741111999219819664698709566640066532421003947145178129100001780324540645368945014739497490056690622425714606805692549462264794670488663628935046253209784701286810903059627837913196010909078160372575988890915668049431931958905969736237831810429437253396100728725746329776748022624482511578553027500586014154190875372211315288767244349548893937126811823576507975737559186226095475879390068550537922635207130175199884858141373912082390955291049480886320773452653449560697377315653885478357543068230985809033063451846343524211935900991772519327329122989298239984803314307134208898676864918317664827645516485097831831275719666859409654673991686667380311428772560547672156667644589756821784995803697938800350918275358548373510238035096603225525565991415554441736919449621569243311265081247949877523397160098964043204516324156612432501455034316605675360644354019814710729774780115502323050776586429235572979795505513976023219507014587792644147392121187155759311788108567349467436775790869700486860076104855396740093966826692529948537691346709983406583106232213642074997103676648809063665818289088678365447656052399611687466435038854549657939336678299942212390575467578961132002146388875142770428485161410379085362672854329928261900912400426930018423089741947233718827707653645996344376750730597244890946843733502536860175083172039515236001787907322728885243637033300444409278129059345368663141470104659341883474689282629988236301306013766926988217798851721245414573378488230382467191665951105174632431279031560874148860708155483110213254013356868540558834310188708893876139373250234088079659382014804830316448112317620154024345025897217767005259876857529110799488761703346812320199323113219287434184661259987018174656117914611868926837025201652991198988874948829242061696496543089442346341753064626206632041270524790465222259474852629882180166510377391520956925717676051391512907908330630891313846707678071360829899189944905399843274940243889710601762751648654324350417468217404772053579072978819030064762179565605159378531746997543678504299622806859383605835065216371814375812035946389801353857890087538637799944252751397164285764558538815095998654259961111212635252183537375408938382994071476719479556565333810335609209165135879604317564521490021087374521940701660790742117146389209287184760160902492319110422671510290601789567464238340951983591142408642645711070748530076249802206736383779844598841477515071622932192031026050055150907697894319437834821122313171976968730832874683832939868019319165370266382003482464988882800995308021917638041975946273043423705049816862663146331381992449951350409336852132648622166261430456380155416702997567018107991459837143013400320349765295216438577834202480497460481356556278767001411676453276570915946987857471095170775617589719547014691405289876238634466607521691840515292037064341671434458101488124590410883667693696301612214043030796233418792780707414554309612195098803307323271225143074674379294908470001118157872176047256284368744402999903490723523364779561482607275430475073383579416952085411858141421163366331884361393046086404438120305008737474074303519812587955651210154379618540181768351639553142978892109793350644218922063827926017080859661513409231014455095980500497093334182603462822266136524578624368933828748180808311663214088601896279333796917967023892600395108849232222624879146995246944822132220716228187633754117440717644082563597774910049844113158664565521693479469938534589527648029861584022640999942100043342064493941644651586082274972790568046591058023199814041816664689710703815899178259905244379416476766531363703816495568807841719706669088818711189296355409708944935083808672087408738589167828057846463873013356329005608175565705186898351828853855818941876184643188554188353220558655149196084013505109130429643867372670176920946256840482169559422438162836317605490729939838290187707137864821959627958273728438493021076517011141209712718951367781133634522511943256406092909203989203031142869311029961628971574165135312265097656638725415021881894576960633826540252017462748433137865936683535892728894413722271223237303189976271218756359030552405933440680406716588549910892233951031852280400316307779313938878812426373994576617350578045486470971336561226910545268032335170946578223513263471197754156648001216476189153839445438270741357110988027382524358192945270638724302898388786237397269948101909956476339872677974381882407864696372061345750204043865140481454084863722948089187495333684538332918569261160013609052698074850778808097199220790549384644912998116044510512482015768134230369758459793135250764991726718978359204624413558353968020439011298808208487927059939845208151455527716045554509166391086146598101094364855299583415894050113221759189182274078858545057370754171980793576571347642256640078552027123596498418147809185247540517829859835871945090092645620322145679360032009803658914036592480297059704238934014178494089834058894208281375410845327194765940157849180879884127867128834697304445346330011340784244697467610052163252314696074617972352275188891136610847282504473338769880899788249617457143265389593198919380945373562006977956600732920737598787739533401224262824638117604665529549327760151654443398797796575964213036484953802973362973405409536566027156662095624204018972541002690308873068859675832363484860800313674933788046988108179243487055585861260443351113415506834721028038863079884248647959934426910709807053082895065139289872456094740899115049915932660761263981350418642126839879243828106390190244271673507646240245768175241297734377047211534086168041782949967650685806251274752995065595324988186611187221699214720955606547552197614550491099906975684236752153392973559712252757150876656596645027191717820529388510936944721032791299729978949595372179654148220468484710797133152924225658106596490768857512128315157570089156883907751592339497055571554396120342875806175188670398308678334081013481683943703392193419742431633468771675540102879059518554697024410748369099885315922357683605018587567855736374585771484106340133489759087774905833455397705795352135901682664773827250855655781354887635988320027857706316422404683951616571696563311771164541224971808621652553084508026356189132604359629200964032384354637212951594753702934135578205609103465031482793614106566034544208285371600231136681319091964102873049208500417437038337446281046462094277696378558093427578759878418333403996601935420267148826128194886255395043815153360888198352817494735425296130520588989474529789819276536230214649271640863202923565929941917524547761440843060223793185676064830394341621875362704147497613963842986391528708311459385176684853692245247913397018567966189810070204722123318045419230799439221508991833972212946648542669182478057987878265388133877917479992986271645433393042460911284741410076110542008971258536672836314860898634346456934102417486756764886499932016760769139511745616303273744980446090780906403046763494443155886989737215023060224087689628089967772008295400972862196936979990856286378189206873431243425191257166586084885331322342618432605583673517357559462474494240918913520207424891718440223182667020736467686101862473648492758014735888129615711645307777309918790610298886287149302046792275251671037080716394391237431679286682193444622476572604070545998596828789594818122960996644984189543550512697462222284055821601781563848932415629429410235472447440652982759565085230803988104176753109539450829566866700980596803972387830710888730991670839909866670302161465717224784085226233338425720816810073396534603214984320697266393091865149254801370103838705478495805692390809071470146803194411882916774100108676071463670346097016587747938619865572514916032126199719973803490164842267544912596739312397990074831055385068661830482906443355681392530449017556754977224586553701311488545214557527650034001289474274223755834032167742658602941502854059595734178734907098015908582653022046578069213686344182383358550580440690789048769469523016824226895303019503849045740947723785841308094244812638676254526179071856678494915944757525890432985971556253916870664050033869114702527528774632307639477366220502124317111976697554070733311267595581143076643508377661383937418821198728140243019592577233992497745653599173737048234552569017468386181605906850252368717229255820454717814319918580749491682119101061410175466753076202891546321342918722601569145323392446783536092923925956317992477364265588541429930289457142976436732322262923602401555030564320283705186440270320700941330893074078971459341135466306263658728571889770055691796392094089540494967577669166831282615198053868579516388745693396126973669872220449857426520785733934500552182495973648387278103946120544515637979612030291659476574699341543271014074745772892654422996600802191430751632012114712233628868911003141982697620811610237200462099132116432607069198868028640972266780902380740359354214499157461979683557148136771420102843682700410344318799421436138119770538705702515776750087453539287747201965450490621594472377056510619675999908569487775939149115942015050991367741964053191223539274975510275226212593290315929202063227431563163988355989476949127802825984508358367998620353352020685460559216786552835764981566953231585885723872988882219155944803787090891648567299072137386053604371214396169103856951761602847570707412208855744548038615549299960111090089529305615092834665028803983155291889086590281766493385503602113010042614046121856202729086358517057052077500603308295180906193350336573369268872311459864004662237348473629802877988102147101924585493748777453115962897925405501780747491964778406746552790393195565813896692543928611681270286078016492471757947690040713838418710229217335189894076408089714318830892216393659687537987014204003784913012750100361893552864648042380140726687789499470242525139568329366720126727746887603228486942873013499735546344984108290399024614311248528848255524681487627399427149890898964065884653827774882015498940055948650851084658197861933024860833800725503537057526726162627120895748385707810716790396321406114798575892731652066513874141839901415240806942716415312484146575073671621014372856615067280484820945901214115397057048462215390455053205451408649083481693367506628520708504476168704764247062925198421823405671193175977385071213843566161200541291487091099968133185503456755250273948056094553333242616500497427369923689595571203234581644450618398094463681201084189262133146656721599470819817686659148832682318546016554172883453416704493091663748465689767634231201898326438391034187584136241967457994649202221979834593056563692756849359777671093103041411307312539564248638501455500757943604266544947470225968985102663374383018153260704636104120350698291007740247523365758424349259806781961067661254989366947457932038348011891804623993440204860547400539729198870648908353273846254259781523770165393409066396161418136993626227242206373381984306775264803874177190613456070869512882942134188943261411559837419843096506180799248248599557473975865979178350016251247911768205661124568789795467228944116120724622182150361118719603867594046340815340520931954899452801363923920455820705023281591771107908638599432662526833708351622186279069635134610001892728789722396733421122488552537949623348050174564571416968863601005387174928821497469289625347403249065911079477469955016629027142984650883917957439011915442316633387279050548931573371400843033387711793984550288105152253878558588527678672465468225260139414212638002515110525362020285088336811671179131453518274582690793621433828736367147855025406183150742638171351310767393576500651872257966213558484525199814004650496644293694462643253534227048108735843865153165747836934943817561843938910192099339207935917302351336134333617409378894332436367662102057520640498600339476261177306597900717338435086119046672830919191405487618249035409603611171758738428295310712978874130067815729007187202852534737368305268388208851900652888992067114141756148218048590301612699363022004245730365450630834445212718140481106462655021833491808728134317000593894546477780717800755411594479566368752313028096856384976646741642397940380978024006822393043975148776185510146807492444313049368424027979663806970107218594446946675695263158838285262613400278056513954164726797847201873928734317431956342714686128687031868026805130778331133364970514243458619433993760383134891953616522198571734006026268164233315262753256152699866044674282100016307871335675641760570610365397244034349964075523914459700042488278070090182478520476973060681827286895011123040202596546463916882653440624513894380086858263099263707383047836303898086010994899412575125614015344638442370874909562441301959987563891046520966754587766008659039521526930724947593463765524999573981368704682383578222135022751562771743922399554134549014307806588887145132813370761485025768523236382933147428059668809646209984224762074394269002794291723758974789327985624247296590853215947205332369490434027966266307402731316432230471242896578160810904602256804488197247067993494893743915075505173557882736746630113365128062806763873894435107340477854284494581032402153026889267092892734321622288665308079172552536648253192224860467190401188149796691897238390489921449906378342247258297448757138716393766038353195822125838995005317567009552936485078884042900036232460798510809447041187766965698527002242365421484082307424965912899096508885363087254327321514159891816287567811307051625685105581512671359344832178026783508960472580054261710332895188363891032447371674832059178733650962829745596943462409255652816656642813369025930758740440023467313737677792486726102625840368808169386094183043542160512328994311377533910651173174257919038774427555774666030406620099040630426051492029870431846013273895090998152703064336944690410044571202235451171011328756403959370242331710298393490082072739036495979673246070117441657434325499611780691764675964746879791515572781516247306058334526364851289816778469808818991132100393955511186968360232676578194608392777588773560940755982917754280861145433013950045524655124291004911372885966068671895355711890373330064908975683351650049482437502013368515728499636967464259149536037394115496098234431435109320221809709359780329549759598895081104350136062164200304054253525182009155876233217544217588085941929940166160003634391015340094039861381614185296591895827468622176004007540224052349144874115414450603504256362329696036597208236492559421476520771374574795122002325330757727354406667254606385566002002468570446003727540392329608743253281392448927596263699974608198030761215869443681254346476005823451709865886875789643460227054800708379004133051417219265941576156879115019134029748585051714860817315609739898187117889639975438593851481271228565920278693528607609610014500468628214330810028800342379908031603885040608297629418230827838086035227249810236770590604646347730952402490251187179864243391902530458957320390858507871952255017770376521626642185281981740507340026663725152809340520811671011269698677937225985693349519432693201259024230765182777135271884472532778020551144835864447823011547118441835229325114932572698861749122603284020727778843300201824351288952626434850401801176692189400301384623039255957312898153724381695307731589478556460254890123359844526030584211078366417704984380422727756181463614970822052978940468419642105195952976344279449380087623752745873654043686032392568120396815397806203184411751734063549646449468864312900565992397103980260552719134441217649315767012502328215868291339917094347218601990614994727041937223244811365777364784334202259996962798552988234835813451982181425675924349886313315764355498522016187470094484862457290141545591894888707730437495867207924838385743401098250062896166079971094418369987478443956767929238886241602443690271546527600224939349036905471674482965770830739242100152832723379609356923990338824465601298007919176430314202194237399396437444250881398720311047330446839944062988196979371975773532541936499970332980309505730194490517681341165244535932990515291198614709570353745265578742451856888960135130446546702707588099460903301835695366013279171879444954101560343692286480222247044767586960903220968422563613405634836829717434394913450350154562712113070691281968263867332213184044441497703738450944461754830545368993606820580388987724741195238929242163746784562498542798503144932995331585543002766715402629626516695809146078810174714306991744199865847329040165535665857626308050241495588477533489852364672238934163656532479436451005902522586321364641258499846796161843552340352324721110521226636091573602713021329448208976614103780709193655802622181784957122075851190422878000874592867736276332300969043780313708952520766671757271829986143936555118371669223725419466798082166668111039566043933750372807554514848068166043674678943264045371156658637505315120812713275492053068222000525692985014308858791838338588827226166775683455460042038732166503756308540835999973834420318792535151098838338539003290965874054873988529729683799722936601292312307160205509733930936050345903955144350530779986167924716144327074762450851301978973869927099332578952464554750676366826464527152552254333880535483627391626239252966766458754894673447577273356013838273729005393896656592230598571048482774398049720583821115538200989209661369468931771991114747170373374826981059627061291313996060882187721485255788982496057151197409955071399286692015456583834310142603080858688493271922984158950926435718314092471047051845128758699884109287359028743120393437627985164110324412262926311001109691495544503094533576921409803315676548064212577277675625253662101808506368182957928716083982340214720353625982063645520085231280580032671686683448151104637370484997348399072102721190358008843242221164334445080022597795281797172269973237438645179469844576480639489491833438525180428786932632752902447890475937940428598452749922277972100023891121548938382391382872989931731194761739061150447827928769110237647550252257173219481814737063013088417889819598162999541083390244410692706737595956997119535930938496110286574076506367694490893018558649870372897272343345722492789153260922324770228772629642491769808030278236217239379885400503625715548875361008901145686498282437678150512482820550492067614725271465218966300496885795997677522593974060305110289858039626218819712821705192632230895174681586477249400663476252399854173196026161036924195715977601971694902399328727439746588043656593649688016852863977515522475999764941859502680405006409698435113073797110441197918005746465493078021521252981008731406046947356590646892418148391263600007362471055648198258938088745764536277429937681358765419179735722961270008929684713696493683678963525182303891310399263375859652579616496449908909552435508658902553027859907755325901273060023553112413722883395464048657778331615768298615178650924137474237208870130880543952259278853023943092165956490984077060959426129628247967788111335332629528747975409878835566787900429195451576744148678404482363922335095660072754793914016971072318582441279892338820023779406397575365725162501335163672644359159774750611925713016230090937345100474527618016380709677370094376805966714229413589600824755383245974803932060796044905017692070585123672619845895683093796806254340250957462165951887975505779654919550494928671233251337556738716057356380028942990248851218801240568679236189247556048248749553282638731464641642059885385147743343317259129731711974000426498722243810614211032749924136371337547432406296672518156579138643702562024303964790489005044298526244657566236218820854094942368505732727377622836552938642131946178526062604999062547968847458530441305937394727793077535078193557627344106921558940727573628596944966388909215851327061017106149797620538570852812095752763294985766777194759352152421676877868173437055674237402436509635179971533020571431114640135864028290245151732610767169202252500633762431074161787476243110180290133180972231123824004466527025579134333864823384782408364150914263032146655473661759625616966594331206659851276704614504355650567632319272380345140253542128096185364065860659568650090054298405004609354853062062677047658456432303555796213970401284145071551329589154551669286582783894033915299223882332902538885726058492433074205048077496581896610609181058545419793248020379655682803999261459692054638058771364903148774404809112742816548241917457211102449742316156169247547908473075166326609819523795676463876788253431508822081795667477147068016351059647568318898324971204609208556997133757414465046934783022432710038421476879322142485713565646283401032424128263276542081608944807016915495419078899085838997387070670154166653384195835071697145193419203744574382051040777729732736083932416374562858922413376538636749550495430566377084345083651770046466463815328674448226290496018468605036883440776084482397002567762132357213772691392393095925237942205667698370439260789034826737347545283328576599177610125695553501926205517993980215710312414311453023069858987010303589421288523151506444142065284953493622024421560328509445445462874140740184508573337343507763059426122501925255325129918634214765821403830797952738737610527302639241822426415421509064600988318441525643072600146861460116194913024036693824750171418942259202080670774549157595384542378138860870217866424786028682455382570607007852827332226510563344566490874361582295226450690960831695617260526525349150207041380219034005701788311831237419981786872388251010597475120234906541684015733501431783733524819386198287179971086117048195607925864281956197702496700421100095380047388039200472454678730906292796860054268202283888668402908313352076886505277918656290128921312403151147840465000757126177971158769600362591788995845532035287764184783978631665070737509669088361316739147668310680483001761136059412558390261849754766696217285340358592190345237671511643133726006710559414359332135805934319651546323178338090818578233195716802322563645435465739653891585126961726835665295452993366536165073980298734018388646124416365174666669893892482737826454263142720386501175530970761558733454310267608916815162421264870580775063592788200735717780569088816079843345659706100924240360984178262541720215278830719157976674288514505877381337614484000839126439568917135693227613352816047973256116480024364781339419493919981444634503389773048307901722189787611415267584913782767136404814522241700976380245927541667269859014203411158804515183793647076944899216519582332638281683336325513023426351694440084457734264891932074127715509564322610386891038570095852192162848418489882732686554704236675275075298431229087305419839504408942021416678082196809827976707749289849712423880933541449510829425629732782669230041011618064786854216339301274558922324247867491607615769541168830213454217159658460908480197196494872285422924913322695771899106521926823520973428529362798860921167917076294858474961499783598343087200700477102185689744126172310910355862262499468390249780248231061077389080430317290598477045224303210033049575696595575909808971877355132748296339886457187784691064035564489612527351448682310530027781884310676814363488368688151979359194805864518378586597310271207805878176828347642204580417485465272557925932127542209355067091521746074186345010479544484728043228759042785327989258645322429852338633257207854943441007130491816007509571981783809560002874758275571459591214237982410344201199042980008348466798477917366763391675598123307360449981783300027146207947153962607424019051778269682879307334273726355455968205132147577968851655215785638215061003757442106878698175908797231054718785979450934163531730971342755736848046549368460858932795193878054835351838457955127888971075385264812591819795227144673148897830668144129480904387647541720328836793153948731927842820614083782111123855185925737202642344646616985206338453406008552668716999882546853183684501164335422424676631974561346008496308560574537359030332058584604742117198315800728930013561157562071742314893304796447468064963812931642923523581139029669949468001450688385729504988003174294755623676743764994243612959018878163634223194934072584973173897184738742749355098506472696968441265206780502194204287610736288893858850387324568556438816578846280988661820320357823033380099305913007233341323450960259737460520043570998600298145509578462832001513573592546027351596756441636530112264712786403244824007737996917646650602387339665635679340398356568072219654048851193224882054279809129711007700450022775461206617166915591398097656598227169631737132380233081894643812813486645249599544573599602734037495319810341373545859961495498360917612628539530787384570759463293037148822519303817175115438350026708995826545263811037252548877439260135406025221454919816995798737164535132550990520879677994407822530807758169956027111277585448684402760529394514288800290953802848541101226157784149158140774999841496292240198891308317859666915388229009946947450247844902571367356972639792830403286063454681985901480867741408921089040105765750311041922161494187431458784761367147739183053531438322669545383299223940456133606017821411886509292207929496640912160035905115388056492162705446419123651890820653277589199738922293901200268232222369773672330039382172367465305265074391406830947473212603208840098990148026780199482685855351480657053914005769345471367320387577245130697596060567953900372658461138451132306458337250580531679344725994305521750085317786363398194721774384983941664621448550518877066168902788747419777507278594616784819648879238392429701230219526438487691711692941913676453989753022131894427468986445119523361135808699525657384995132272344858932311386797831195178438771350648230787048299803447155070141882053104142668229481600816095024682359788933239467695015594757502235926020424722638494100311367044097453658610308012059308927527610728526394257529284362186377642535427818993064800665696367275161697181990722601937571168925947974476124876288821798650136747507500638323479883964977400488412357566686571614215831108473609139345000273200513079812815702225616906552683303083665638141347007081942216648482210415934349190820405640859522403880037807349261650300231717999314825929118003774744659501565939981386238692869062652382061233623674596407209835077011082990790280690341091750963573145618231904447704954866187160692280303501373595224123316964183487990807480804086899822172755131619587809677521653989830962034894093683856539421196123081021103471051742416434655171920779277138529506026751864243969265536723344784100681455951149036782838817570535380038946002769070563127023230141413066316801746797335097254146260959957881594107278065966542285301608309809482798087779954151330634185197787230301266392253999559413949621100419546078252067442508032881805033938921875652444516995541376477841671637307558479723386593795810457643294937793940588010426072694987984097607097789089319030726417062324358965143989721768893366445398250671331838859234824839935452323035080711050050015734551737071928252780940232405327636424567380595103768316997069213511726346122384061977109879593372614145356824929661033000044125221578500858828193047026112078367819035814227829806901453759461905075313874585488923909738823133804471058178494706314550914348693054028737338009132510100848348228025651338108706639225813933899014995546521689865574913295519202319654434230485311501959416153313000826213657505836738224686563381712593824677845409351089524353536543375904894278097685500125059369223889069689216652519624415960645191181119176214550667982195953728835541493207909443282684499038580384697196707600129632589416046088869917448286591259845781024757559254636851753364914008043590781325771118859867727493315765035064538158004625520087756442582286303729216741557887582874307189601782873509840093610076042134527021485504056426269463233956467382533963127665399464764180191071244365655482234802596455847821468455649294438771823722334153764009460723294309749832598107062598166238166573715103964615008910242649950930735094560505306376297589957981304844153870582047950923674656238443423347237264611559011075885688278941182109524535229345889602521033977200556446838020382411241844316915247818729549877531979406749752865589769804579508263337191782324607098241532487074102349107687146253564491608591886391318551637406473393768130992512419229569997310843509103570658201376645446062461300152257453904716379205581486043927147849206558054990525595212337653709885376890656964507890888463617947700105539084301141258980280616309938673821120516175576107371457429630971994220518715573884404714494096216008629665014328584984206073518773979903864837649107271617966742729863438030252157712618386537951720719692486885126811093032086525619025530273093925610060265828355120245144961407917545089720712756319734242561223503320741966374030982872075200600570245028732990606099685002684027823407030122202506339560114427914677175188218826748044534876568580752733871812054663310725542936950096997508886129291028528881623204889417643709754643379713404144116380068699317671137696821304785510306374894934046891637453812995470679031994238725784720643653289630937174872497913400353706306619736053896157372883746378831064218945421167351086922521354101634063304083043194362531437263177309187642094797014072653518249749090813360909413596495980583039650109309646511297715375463213928710059758597026375091681573553867626812150111550781518447770888820054870399441666128804928608964104508220804599923735159408337394567040891696896092859559603609469566521784678727689162868969164953149524061325578884427938796772134188571818020128985295818927892706292778841740146511599785162806099427033133026551583648527848825289217359048298760292615576546402692310480664934809153117069928093845989009646500604327621612074450071469818633529617797003611099228362117640917014987155869596443781039554589611458359117182794892544188092763497626012459165676129875138998862495774871664428309702182767874855519786148427930425208024392241248246032329973445109895394545578710566680355939211922083576419093852720179485840799702061684566056701510122685759412084267999213473717854187172071446089324574447320581118080175830731665959087714313358397406521494490097421248479292318831379523049633783928003320497600040252902231580842109927323268358227323317547738233413791568202834469447020589516523007657112531889402715847250390952859107944866290293264399907019849240289189679697764879382535356190016281398494292108964889402923637345256423769385066998809488300250136230139871376065820565532662568680323000548082901535571565983757128461584854306165210200498629035057693474452037312760075525871904739778279107293210802302659654017359364366486794158785841957786279403785512342090103603361787901330393877040514759777749191977365175454935061637609812686827973267012748517378758686429126899629086961571063638281242861195178705147067853990092829208324200047870545468489518284394976122409641007609902983842724018429183908990783092014687042282612056848354175221210822561148411548792178353177889688927855011920394027605869166360814749002157383144552707567232143816885061858281411035286944442335859449017940983092544548742081110437235525225560183009883117302324949631492897758928016127613153492559463916463190685808719181081471072239267989197008863002828883918124383763629739060891807314174752584660340109908945283174690146693580552991207436748422728981742516854673920851817301483341823277343437824039529038698691594629204347576707230248858297867108545503781178444853020118403568684852386156849064550766910791581767855436893348642301524701721491865680851487826588061764746862252415047642621133181585386901127495600255166847071344725258963543834036434309438214291879132182493522382825674902460118357896986902574731100728087028025884042916421224239538763674142203700036708644045745103236576240438495927479761567791841303506653311915992492715625190903789987568299522101038394411979351819245999347051367343910260416303471850037880651704856926176375688555784245320992089580664431430292597559300377354409188950506118610787859241310175863111529342860490641790897670309824273138605348965266283135457873117556266601737149292952021158030392580732558783458841252410928486780258823301419254761755366221124352889918238901363537242205910964695399643799249035371804179147822622546505687538700528988741391863779875490116260419530753158675357312184507369807218189690435599894914197306356455146635936610490228323160365061724722556708748717942505291706567868933194308031441177457898246656859403148605349927085189323936256932303827930121240072200034165718944440999584536616857103578313297089196233641724806900346840696582298676110142194753012584018563782350171873645476487038307553516980302631001108249374004212922811786780248773041874972819290551135001435638806185940083418172868982700191057399237839243338485681496871574172491418356809798035658247316697859711021104814488621554360947048219872676341322580502424305955007125572795154236705590036743199806079456991501469088385103724718067189793079607354832658173560025798678052760007901100668134221110529495145092037708686611826589198604542474629634362113057528080599142061762031502812307738541764788500443093368472977923954914848379816304739423537674008729825318642901174675322178262894974603796026250219529240942635996175775663336891342148437778297825024446166646323715096738812330716059355420032345921260110427171484739413846267153746677830009459874554958257677158503654554426852870951923659192317482187234829747283128441883269281759458978306490188578947798944654553332273082870938301919896762652670047213026811065962655081081553759323323206124377797213765877836577823869647139684553403094262936169555647891937634687475625207655624231019083276871596880440646986977221979357426736958794191537786690046198651216064603979588513147665537855901495269751817050887807643281510607505010209875860729804348946749362735534385420828513565353935017340095636842219934756122989584579543016567865409528649556347188134626891338322932584525639708383753875130325934175796946310127224709304555179282760314681150753392152604953033350848900079434471688321261126321811987267536687943216941407417585564048990068839326872327278943196709129148906935989802526637710785981966177816692130914616559635939932946426240348530341922366220933597041419160654163985068227598435232056253780224155589213022572038682255871302555783244224966820189413527422360717092779887805298958628069783428136123819452723624764111569585813057850825594832442875146202972959639266827826894016164821393688994780947506052091330712371341588474695145763041493209483016521021834679951099281516113786117742342684356547415487617171417319282591299151997568665096798706347261066429152359807202081399020853339376999214434744697763157847959650757164724110230492016821053202359878748925950636404265394471179066785002557912085401006006528799960338149737041906956027503886371244960544726918346659469546796393797779394910564191343380870705991697743310578969088358901035402286875483001199367641308989121633526434375130411327768287095032619667941629780268218398353705014153963670861297420447510004681433169928843085094627000829595561969689609646607421084733840018725362261956359714661512436255999744766254177340580228794519297264629014791959976523286606336903535154009606414387247652324058665163343491282493380839628800735309219924039132301613951578978320791823318501323152680923541489070457359413783580630716566485024081056593914990898654728835515897633025697766879878146193741270905984557381764190256682415035980924178175397271141603152891539542556768970497303729168269294141321732893626108916389370848376145786751080209648923596844412414013239245777321527149556729111329027816681835796089658861429904206294124330505890639857775176036357213471677576929344054151992479611456637635649954511913253772364668840708182163279196871099338058789179910736167608423171913485855752230096263406884907436783991791473550408581206225585939799172564070972119614433144216161183774577295776400448423093392252393004892755980163340978864729524033227145084824321713029003048049598817556639610438963186387011806958439163321752617783793792926428245604587866642665138171612546802413548569677018884299838339056434606113116682473322717365234548150960893207918983177908046912551093349680400236153491124940058314282401665061796795952933640476190532615602831838551142603260105365628471384971512076793861644787024533916985934996550263327449321818378162059588766771524548719346034618231819848836799121829718795442864172489580118490318212233795892055069390324261312373779821419936794695282720277021829209314452243270686651647819354968960243689158766913326663393760701481739225378743665706394710269545525449517057102261774828192561558646901124322029782510952754001467106625972298451091513665107458893681640887389870688437027668899790192129237869108550527734867407727247398914281284926449617507437150814853855974494845368933193877119550949501789539636798241105320302853339342204173569400577556192963465983091700554356424153227916754321791241237220731413212067329333962584176042990920172240131900562383045739123727493037212617006824949483871244361990771409827704239428230329804091583696162723079877610890431069206788407739651964049198326295137812986731241652010778639893862408859724362969099007626384170283961793615153021780624910971749276535066294529789060947473461548382345499424216986234820254989292161262778953368565465465959582387300430148908676260267068090488236834938475466837113580895250303957000695909367901950185849328631028375131441540382768975600758528342326038418097772085372088982536447711579321689233724183516435039028354512139462591968358346327288636204630821648461461829385921390548061894040634979009155048326096209699406132377678497404002965783266840098779185235462792167402089052919545616857529298659744302431068399273023541986044262911615412952861018128141900902961433574993154157127192901076888202468897195341189212050321240967590326526767715447383493805959011724948777710977893903577305930912283047843062139823259846076235738212548030113939627661011355361137702165454968021560699199858629487385957749841842205071529478007238885197788953490789316719485975970434880307662278606758980256224846152250356428398404640519690553456772088189393985822346305062281988158335529974012847802184640394590992571246991720244474820501700790867529255365661560500159776089356954293835417454514341672670845094651962239343353692855165307646145166941593835983774456493863887323389460741597022720993240398334434778104975250661900572129611906769657889200387049642843961572045276854265106962560496520222789509229341922113831064622994776055195309280902227181370402369422661928712930993396759570597115145048506246742142503546830060110396916914617090389881259847850943838912918024186937341039441014025454146881446269570591563245449958704874139337076035485492399756157360718861589601238097551500997045087331774042074268059218996943069822722581541476379582554258730305180703729945625042565114065770982123371701120771582486221716804767986883090561253131050820398129742297451378908148451861699131557194092075021255201200595147693266937885396278126569264193960696036994158942035126862057476487036342234626752201861960247792008575636484418419107815693631001639967679081464928356077909505275057881610681297103241025820622997978181796949892721197037844453170237018055579381174261566665359148999519503283652796021000378178924598825949286225855857494889962642868434877170014046842385449584061201864951749381428536041774299384069444901409114078783059376363454652721731596740739195891998588515239795623346049843921900727266454643890027979352086747005577136809657133462214889054252948533277338086220064316268406426694334438864156973966840939412326352618791399267965495800397708690231682280192124473642142080218816462601161916375971898555608646089389288670090594088202919619615209983082351575193494198535951648133198783812980486127125647138093916182443407509729057596106072951056560517262743816218851061090305863781591777727209748791484615541984891324392289429648919832653824935794298089522103395256619432436471907436732471262492602326084876692708442247677430457069353740639785889152107802323925714974009294748110872810816457263017178345628314191705521185467527306591407950382998032480787163067590367169055834491850449163651939171472574166866227810530778367765808261756783844770400493988620042560201931664154887015265984663906158992691580813496118145543866334311142909712925162279275233507852793023911192639672421569236425730841942058698500862546601648620285727923479515506631819120590534523730766188362589476898754369441688380782898679588608781278995876623408903852684267804919971924883133676248007492983778399676269253889885421439619337974327076762337566412742902252732860215621184416468991811461046075230770248143371016183025037457951059863766148930528565289574202487035944039937855273602170013328760987481259846697128172906087865445954781755171946550108246483063495510058478973395531053206753236522690397642992589941718130322747505135256185849724237589243111348292657493326125601645522937629650617572798245991331343982676181280453716120814170521822888805061276099307477134496141167181745620276844445459522080812582994613111471843707661876664378462994996992703871035805590836984747554886375359309847624296281814704319055823394842895325405223976456545182490356319847675598537131143819588887600500802684591451103355054265245250775525123342868653623231240221653578510368221008562659274098841468333472748557487984154779336881286666221013840284152886179617833503293711091627781062782347028367077519640787443842328568756801501708102103077179092996832271243605433746849961825778149110620027289516486605942784991329543512329956333258617042791993320261116394796024025999062931112405240299012600659926875392918745200387455344086520647696022845127852059135698521148459819987589261602938018779231456942031227628361888620488611493208559425584659552035643005470967512450052068681406661881095395348797508722260769796281926381768383229372476712261251352539321345181635090646685230163515839101349195003725631317078648040237409661486682534562993312857578197407885886955060776521917717698991973488052379978917241831230400658683565697155113029791876908837581771574945491475534676060171654473005521336761465638893012024143838745576716734401461551057118042491123364470283545839493126579023401439258180048963749030670563255111945105807075919640208433080580460286072130013897471561751512691875057415022071980929885900273983309993117305015942042049239880716935493206921324667392722059296213141049423125781474468068961167649463619209061849549288518996051136230394902599267195928971348331471851784368708418058826750776625409734860681892251798094024166343612489391412551615951646617604992857325897062564171903099683559416675314378711176766070861450960160000090586004626272206855366573679670215336109514758705340328144120264213827138766728589409174509067655613918521764216141749989985154668625617924604032040878722601237423673600957011925660557617507307852736458522912762568611656264250546353968630315605816713440070886310024846592868126205035624190029664229250017216460872120477918315839836755013219111756962229850450083037061003531665500083068625638371536507837772445030607663408475913862869687847347786725332006304299044022002511326854632623638440283155955800673763731842538971207743003570886319878882766309565573576802143438325639716138427412210283917722975663835548441498256869931097545948140942808528133368069906515297005811748520198558850635749914142676303828152962732237512887834116489646626900462157837795217045470487316618310573407361366268541646961638274592447163802450314262778133762068242733221387867088836558012548865682375557070807563603510426383230532196763797125288608658430113309340887183655999962043409519609100717248595519987647554551643823937176221599657494946266702701916089478626179725745279302266501503513225623373023960901721309138339781989817643788117227915653826306298035916635447913430286020691675139922844912833776366223751567336054686718601129110264046625900025560418318202612296941737567668605739015017695933672710887487616814639107422326575902036206738672426389809728726533037544897228918565160121923739126025725757352665128706065847075999939531944218549314276900578021159736925650550284656517404419929719227822393494562372379937339484374875013973114851469574001575187303576576557304855531072703043061700532750317998251772205054412179408882481628717475226457203030146280580220492410503710798709549813410934838188181517404153941027168043539502681533231841884559014520407915559163144020970201484027207880491055715286087171646129726788292690491964668681669630791027492004987136623059829305362079199477217026631450058252790912354608029869577336421990764477388434834098309113509346785612339566687068760191350863916992471369884490582889817858460249128376065091080801888535564492308183843662557530368228466191779979232796260040486302972880883926502673537531932731445439378567503211718617267168084650078430537121231212200046568449679502982358238832041403596153436845602036742613275774620864394794549474899770342988313609271221523289602746655773505453617269585997056338520982500285285665912071710939135883350518649901510056430010230828263581624683035417839538697490822812962028381556092074199814900867483107183476534534557365443364088858032615464042869053066567885677076963427780743870792050348028897646934982648075064781293532673258940795022018026649220627683584949050377542314887867567807486167607905599376359656983972214664234120051348068655954245359349016553901255324189951145974413900663830380143428072856592304797636437743853708726641260910016728244589936442263200503046980769018411740689554023666788799062250408092752636208841980564585013469502490802714850471692203011333311125150572661427910473133166609541459357253044235719825985838097162918078972244033993022073816351600666374101806629982136401812738860045940655364252518928861521731595118351621018908440323808562797956594785659868046896417478166179552477232796917953449619454852776433480451117620235368447198295091089876633321485458596217307620505527201483825750850109495834739736038427137147284204588274455538979261264820603242895570403742235723256045139031241942630322611321024136536839902971132143753651782057720700480417411228350952013718554761418321958228087012590876263374802879833810118436576260077850380323866112746510553970698106724041340829313769526039094224830006502891295583071200687869519030209575438954856328493673084661032244782254268624379397716674142531173861052667459256855707271464594505305648390817601918063470275736332260266932071930044899474466490348376877411711594702086627466153952538902866657478103829046439690704077783768943048801714575156349269064427096850148324249600986013851785410185605788302728145860158706161367259297866393149009910735215652593723196704846231898837701667483564422658369172938352959541038365720662679739278477517455042858654910667235698436891851362595610644033704473738927284289710139927645846554994075119643295191065821089622219143303854593656991507879462396399255179359972860475912664373264302166934292745781253503561579670056595474248282627970573046541579202139388065915305283807786796931785510422359096103992449728770932606290556807344526043726988038432691027777092262474473456398242307695731851237744357097405803428127246528528021040274717218387046390462376969235522633792723755827591183625313555966614761175489038219653979839505793016974239714052196565811390940253011224990724679642639570358696972653706534683120579098235651070331015939567898278498921899333452859754588919911472613148456824160657425945470231457100762075693988036223569061597550628180093410831812625915575015956850009712318244434102671248902582219502789928614778472160562448216226846407591212922283127912473506877888939217497763125932056389811361813325629722124863875072668726541026585877755875571345972680882716433143617627564174544773841165062367556309044446079186349486122769794006342426250884344423480921415774160890272727944238447582106449682062506597047004718461897993424588012755912718587377379549535767005885525468023474316845437143115530209445027119858688256037049801648180122907792909335042209659709299178536067310587752871383410842333679917479001897879965883112443790949641591378050059704741449759915085682702336601761609750499815758144412122864104875635441987176776348778682662192834896770898643986041401187150576060795108451588947713686272266178998758526773500669804675832290859586001147700668722494847194574839450000048978878319643413323083292820547026388069213102169177225954591179043161341994087671583591733283308008267134055788636571322007163691010876788993250778081464934739864659860485702786618935635833687084997798832097839766220127348552543100910018592552604968701305681189573076812573794353218061812088110355771890909220964238851356708689012570929678617062655892563387265128362986112743906516341033242499071546768925439113265387845162019824501371669975288683306542241155652074127651423946776655905403486501175286557459499737799674870493909417913957798192413493579577930596127559542248616191537270002375142355259496709979321845998144060429379623571792889784301604308175227513081658228229722936777621400358315066694677464711741294851175779121461215471660459206131307291795537668891309673253053091937211166886732853275373245170006756553710981601212783855209711116079211674169371354385617963862289963779572401369229246544499835495552948469637831778712516274052783232390239192815487057901077900539479193927438080423802481771087278169641017242141503937951302450557698656234701667582806397946490952825101769263413924494545175690208220861612826508070015521846109621602888504126813873751391189123560081521888824517739744000370825050669348541169044856503093171027519298603719350629291410720729327499389834672662306893613496924836480894106886169292532546390192568462059658478391150776796327254985625798424151315082126832880172495780508311999630264345544095105163430666520280426436726516985661484757566000281334441034597495262842647430455298092540961712352875687508121015929062005829768585101222735961570298428890502394153305894878896179095589228603205845069375030464089660445430112620212441953022504117052189968051900505305717224550058574440051509731921273384645476324443223988249820917975508862945941762912158260586622105234483994207291467714205181586321970582636816396274185207775024314732274088739021106542203387782078775085699554728995095654676009159631820190765155355971598089531459857468355418460575160642302371960433638604074677103933266495538178918702247327717468438262820869005592675856861605001586935920052827240327305062940250331239809419179290541814830748916727094788347013420726477302099152693189493533202709956964410472959558288422991889706004855451513986309837832991509754148696553406177080456077352112251579766189618949741323100661502675438672764549232831728032726408230985388529450652919508286720414083634732019164306417782349728237765268772927415373890774324169116935125696355125214476449054563238015241418108566220605860221877153004364299095199516949829916341604939145206190804176009822911224102591857695325499273252320066725358452587560616448886351313297259599402767289099409790583247237883333213845748572817149104197047089784924852219707066918833210317762531580516394233642484929278400212168897047277030789881433267814693503080294044278925853109398515770826033347726267958478787802114064891091537631395307907198592546955110069747248396666473491298976308373786784801146876276108383377829854354026335034980019348600360104917893973251911740376964280659020872427331829426137035256981503780769812980888476567421068615362278296630807685951870884124533996841620345536532847540514875595935408074947460272420462883069241403498595111826274502342592490819356624450946247279259904330008298920334033022482102462484259679652308669812529969316388420890462829540543184254290053508070410902962957117585256543081641887255587016933954703941370066391574351837326644837681509669589707031955740675592227591984896445654346765734744818846889910592716781636899128896444294633649491979101391572042031207537055898812170621850308066786821550288488490890864637536776621523353824889349486768040451174908524011940223313334100888963991746198553898591224804289653045499673124091764089487160675013867157061330450411155804475706829187995469549463982718856882310086423143191644800528089491035721619542251681172083600995144668940825661325192090983062722684614937814328693256146752996024785871381407900539249824991623694623764048660305684356674712163560941921714571618449470821286249701268153955045940785323763622952030964109025895263749323157832483045466872867726102159650541003988052007577946010049987164112196494746607092818461993343779192576538121532499839375434233771933597525478616382248544808175810411526242042139479306951451869661306218265343297812219347297626092240815775718979939618024653885272642514154288004310977255661285662622286779192882595382146689306984121446156033317945389932725803330322959132691687056297001478785581125124568346846746752905310686626786960402828791863383998561424028424382352362647186237295449659518249433262045616359106359894210284828755594547995983292803621634723674516845409472169395936807461198066855612197490373809069697214860299167454555719166341922411373234137863061949077991011658652832445777026981206603554744441023622976086176865516619716716868604453284803158332411597748802260802819395915867535495907338072090788458769301970063085459851035919957112406434995875879484860625869073279896459266618478183459795427021145751779547024003321432859228923931478538389673723132823444014000986894006609889269327218319464498949918125733628896067745614414184204629772145756628961250401326418026039891775349255362356183009587394248090742557174475516849715075486952389643647128429688075848754863889508176586242793603361965094972769659472417280275498832897896142196470473390622722992079569210660258729046118137458411763252949691130530319425739162630147362135967240718435893275592373260495566523306992046094925286703212487336296962066191054206355293448913327838688498857222407805142225614582224822957480714221621188697619546239878842714707469775659334601797774605310011522176512439745676593890769708888133633141418926913771715026488811148882300798373575668292737033087031609768939314148603196594844223967270225761901292975973573903137593934324408892353139806729287253797646374878475016727731125315692098157694103177181322916736833562146664105768115292536226948332161640930322774888035680629800145284041394924829472830038462919272382504660108791583104146386426761978640058009417689758254202939982700104084217848754819944083679835282375617535188977178186835707921627585987503281107800138994061874767329922041338683869290725882114250506708496616479947144586682950772713712804758031722419138135663437469398123362694230272114414333137999715553101910496589458530074584593930269506471113388399736550001578133363376139663505799445204163691097101656310811458681786665064249992850485703519043453360584269896012685245059454870295443713247936360711365189366234252476779804486388047821896067695576541842830948177882762313279312629011306588680260748749300869068633054360798632228899072951578737279937851216159634122457621291408480850100495526613406821317080754128791234582263294020451098231478139810288484294811061232898904029355857811227904682900236300409158352560407219656874366386224416206616616581911388313047013106310633523105843573688347875409619210996802230439777542242814954511068610377287118568003151788031388695995979731224751321748916861233466826688500755701455237207237472352870217625260567695262116255459317310782305344079276551855622010261667623091941650281714279151775730424189704428269244560702983138735087991156205013659496686065484407362322310180506113211509349720886757216563879510308956202144168135042287239549591963936705036375930341016891727033840320706787216199073839466944684333988105224072204926001303754957696596259494865231834233574563168735115494007097135098409824691665443161546895437151332247696097807105333387234368371140627409464278628414174994035225385338335394934343745060714449982665308997498679332910847225402356211701893156685203901309648875876620638224358568132637454467977997868224733213907215956406711958882813911175533534441574528077699334581970782650999463150861630450834745947237512006067847479722311431492819428537844849698121432072097230961651962482155585127459097495910752953574739397549737797756186610138864747982092251105383841905390084815183092918906627656419515458097972421798544222483263052516373996353319365706775990914433358151781942792975987716514022761367095647079951867518758601627535351474253013789713746962947931613672513291995083172273798672867514675010314593892368114929460764245869876631868218024148711928569453742085479552746786891981105935811135727066520972607441947737887016315588020135865908291599338901259749202207575741804550100374055608491183435799050077054624013929775356819122021492510107201739694713761574639420844675940332653156743047428660361414426288146987503881416324853325506914205431780758974828977036496351937676082242763332400009150195448740091515804759993510360803878174517270612710467867564904210847993303256065649841438046702254133120717947759990542803421233514912404945317233923473032540025451041407902919608861444928014370474489177118760191734160557531498705169200670154650623674225170056390995887583232973515673655560936163034404072821951553048729827316513879947185024868008632402923513852606876314063495207869805689318067668535112212848561916009450783768978149980544184108108831696653595398962970226603166338967590844718543828663464029802732931430352503692780558118944850118860871722319667608293152790386231552098816704302903909973630246489522232418891179487771700115209063280600249317647796368192640610349144675735483007864883689855937067551595793397918205970903753171917251844891936023135505157728688073916876072007238307583629917458113938324332218316233279647501674165684299136017946494328799561385196885746458122567567130182062247979149934037508008273924284716854690606060206358035667258639235311195770368750910268946152116834643846850471003537797151181515372678993335691130783542106887908017337046040154244738142854943082257288016904515439108620867747768464863111525370294450539790621752226173881731283826559802437421642381996984521714249523393893749355747662774000229992006732436520286367406496974663067118050425324546184448798274632734483322711811119352677290071151375378339060783101346875902126829131241979686880030109378191590183272695803633423553351228487832919780122339136899746660495268635965070875337782553442210485758744702956621446844101095599329802894610696594452449290665956558666459788935526131612734521291302426229445016060139441317150025591353995005540369621054749795338379287468473034003473111111635030183444953405736800287525177120909143424326754972640716838333604992636794422197692545809084226805211688293184838294957064448517323329570553135970737522440124898437741530837968636503810937949538024486126413737153233959892784639369385555240459300525218629937681724940723842256281292991445603839713475710154614593921974916697180688621903554605731822029140637737203212375314829134088179525094953462132600381221502731814225549379804909232022244254857733479005269458578100018553356855354720942930492207175190723556613332112243514398594887080603690173221326660772281831848002280788026996679443820074185908642505653976246470672979914821468200716634976373150240084472347126712585389187448622997448635212979180760275774420648432001142194711781273803634809582335635001205988871882697702818136540970218097430838725248433078156853197798871928647932491580175276781331370014564723516554957474936889182158652930857751844470664109262076372769930915119636353717462826000434430531650306804038588481445546411120826458145401241381515692236879195180744457034976153434930380010677610976649615545828967289730256514245383023601235865225908370035280108613806718501305130610017215704046874816777106475178508276054023014482728530137571027178084784996862200987856522890265084242400504221974704862021742313949834664020632632758747184572857086022755008054958691334492773268610620049839950516976264875219662246756789387926104439407680079834362546592129031565574109787343654705515485845196770412771550049800049489223594777549192790145236102315732028051818524831545238378330077436162952076135805339372504846156393380786922781959347216913743431928167310862089219356321033540618252803287758862956001198718414893382051258364578945823725066855139497562122165706080947899158600159290120652438069328046018102266027532965141501698363208351776046569778382567625724684639413825404872286605698885758976033995845216555212323024829027270554103288977095794489335454482725861579905213555160039084970154520458338206985789881298641939323328642457618639958575892542720000238061359680521033116528392837066884365433317391581536809673812514517262936161490384467780625922565852414051414475916603675290386008857444809425596027653539886322706487598049337142585682829357830940795951007182078322325101613132186207294994496530180614066495800149958473515506586124385038654315268414410501970272419889972406352850660307386914292690551344735072251364353729258085846469693704030231691243220676795916688308227395814943114649331004907882484572355394920490416145445978781131232219438289805129989680174998973849198386313969456431154837644688657735166922140644278846514576785930319019963210333569269711157819434354013534333410699537856711064366870774272630454054638446201074453027634724183712118218384862037601364350403323959987858245597560182239458279104049477932771517596423216507791043141212006389499145942059920339218266166301777084883859821445158723084065514823174293992050523307355148478746283997592546207758647952435254757800723469010676410133077115969861834947776567663139198492053311600021208686419116205119963511354965293578634421059838324862500048922297183555062054563353695914626101482090933589610788743270557772166802850487977555850533119860431018195190435521211518278625225015530630481667801653318515294015760932880687539400084281718624640434632528136041456081228495433379052676964452959760411246382346892823868585624020647382301728097444955261816492151908401442491339096711570238040867009865517923630558541327907581881984901312103101333076075773477871148113174865936655298669196455143598485029944169665408581000277836638051635778112779640456551051845605931562439410641699296864888827574676922296371204549499222603773404419628871007489156254447932288339634103816581809317543923295047359672303758425748820048351830922845672965679332166689769814539610528854884393130993195752966968295493232281249284732857068999172314753071886395182807315608837836526846989197509347870842156087510222900429429693122677592580671430713300958207473394146249182643964436426883934004860923721312457420566542246833231182722260446835095650471540911477676379538161491902773649247977886239753111158658121087704680323837054985663460293943607330567579532238001470989679029824637680474750006952108903064962672156435059014208135753564744357540444485338126709627800756841511206749643743199871233615132471243488478602258757188266161815959957248107148961528780451285699420033435760293047796581047071772462878164473394523874437919160460064664032756510055101032125700756811815582444727451441893429874308474626700805818942733908677050356058997219283219359263284437040845792070770403623577472717359300676049224518559703809122434805293718886310913775015595512848881762232648033967064029708689205454694341525144313774737405084222910864223406731764568424328980387529667091424874330774661290055968512276986791054589285018299254294665348534755036902665767528342856773156245819684390472807506799637647294431643777330896335565677336046792498840870670787193804795517638894423305826978998039244423502283465241476476106724599022235811340574860151431394157378687072765364699653434974667848490464514099615890564353151201869369067908641057808535689489551158759661460554367556800084456500416582476293612468299084634878261553232873393558408853384946573872119300019900563646873091707401965968290189408656811062819458179881036896620479217999416546027210648535140731085188735426535394417797531752397963031581327025815927193765640926634715786826862590915155585313992247520756918501163746483157128676255956180157960021813829417053071642722654105917819257794718191380584434774105809092212576783327331322542904148594481818322381398253917564088307049616301363228645175894004340692008800063734157333263261645272696927700735027957832113227396841284594504032463348806017664008422115484033141868753841214218247855741869453918529025869117426781308088181469780179633041619815404349874092542092237358449916145624290652785729651886704108173300039070421686672897484290946132105782681934420863177272081120978235133784984154066552650823531194208360296469778760599571155798935230008777395276213189793792878181018030061962314397481412778084469476525184972137784367288951330948324934120709796720336892077144352299129259001019263277857777275232763771487343473428607389129604600386589291886518399171489902842495857245810452674103228937632420914104918860053541524609920529329236636836703057718304162507300597382453638217877120073834776546183558992742994331191366847900519951081323360752322968675016755725127234507866139145380575115751830517979356246338985247235016617414660799657566318574959538604562571320051693934853396063915615235618841092940504551759839627880029357016332621743984047921672828733438060955397073314301441625866449164071586958230210275500295542849422869130335691324804756631377229080407082873554906953521603157982095448079197334517413696426915671625920770698516030982983468405917854870963753878325599030886077462375477300464801610216209157342028494333754404771488656707230099159621843773507320993576768136444137762844926364256329885320439341008654915766120036087152556249184224127154192310859584045940054155299646186982895423584991717433464846165537522704769379662585097361444593794151794264016889526057706732928089108570698988380869294429231973768508275602308132892200847920996294520653279935481035329558208102339790328593491561461453369783041741093966108964887773368592735276552611132494206493243698703634115493316624894299269199221294089976163907173869680565687682507124196530731356194803276913248628518810147417248800112051855830740290327491412017892852121421638532611902434710504596916801257884984414389063969205589145453422747218744639141162363863057571909554336175478190283096007235557993288261947285727831547799891969508165866797980906441945777533988745851427531996618717735169611291513904015613996450473293163008932505429846146373680731049728136601615931653174283187117571106353319351624834063947030972708536898816905894213479627114906658607392352770977516387715572962651362429854613094701390832294087676892754305753674665405987815654807795369988047856768948062183185896856564081790448091039553574762301492622480375762423477905637225850664724941504960736249232557168542171428465067315711164975102387768960318058011925239431289504555186425375391478550416732726868134515610744904027968546388834970149235968926740146023751456977746908096122640412727905557803015942342424704511643798737572979535904434832135265686424108211580916888740901195162096115837402309647825683399744451764507951537862594940121286906481103953716514467343639311313426951154571700969594252798103690822824756197018677419372268074379222369390420284776452489404279958947950283077977244526818238398382791453528748333512010149377075502593634236184242373058199851058450377534043777581347473831319732900653974570543689931741356329823048502032955990676218088653282036527569664839933053537563696609608956763610821363968754351150676978195348668107093159102635843481784981597677566734861347848251330950825015236382471880381402927216122964833563427648728751979821874572507518737868426765000108897775106705803072713685164298849875130194290438488139392804087559960909395384910263195363478191886304349101600040538110530933859538641854563762069754759035365616293037970504891033780784398916362014472097870595162109182603611147788908896242461432225231349898883110799367615111648389470576030717459841842254290583992572325789144420319609174009828325459257301609003637928763235302400106229122905337946712202968290412707135401905236350358470450938872454516084339612186657566233315844171125019052482196343276094874832828031652821046902713329448920151547426481529731503939809133550037674439024920149799186105814790274304946979965439273665695633871512828517783548932865932972925363744134108576260079192585470610480591915426701833204649272151775753841885930712322533534852166101870249066921315781283125202557695981085212752654986555499879984164552324439380963705712237137721312512959059658394402338067459974152129969539390708927784626663144966989136236520506907756222814954109081174176963776117741499752609503038497056547685578811827595306176323852614316495147193833297053592409749021322649367343218639074876715637443441523594827629847601048228811616649390522968243792560522548962027210725981851908710770495027736728075062631006976164506682965402825389252502367783100832852275208569225443481946289872587004962052732102698150191480628653068903024513226184846594915394518499345631605950036641919132758490352337748403299482814886610467751441235705766353449563631285414846655865280813986319420181122900879536230453984044184051797234982060322833227995599523813808799700057750552728202185077562932777731297043563261812343702172188604006255766185143772919357168571044458116445355209548225047334176060940666600180449794840644824255039143641656636745599956391324602315877234328970461673321370345163318541672107506870881460714127956725581877585850291919975265465448905641947709917408567592536778250800225661027895921484004673122738279026993645217191590565842357838164259179368118668997994553835607121084525994332052974753198969673922267478603027480371039153087515518461465787473197839938989895853743890636113846013960935324098835300452790257320128737074104839945715470914736879250994859143490228649940304117609122190868075815506774352460936068346164634645689705834051531529255040193481947379177619078213416222201020935284248274338014972246089392833766129836877117195886481444813339151213080333305363464019885665994565488274263642372776344433492354761155039640262601501897013624251892321939666353996895695001497712269760837543493315517855155513370652944752912723116470288252646202429095571073269115018276883362837684740622317019450295285178991699743500505173301540044550297496103243562354794910264336740621327857401167534154855383635489112381536824955985573832884320750164840492465640285501485839494493857112907840030176867340949305327641337747953322762981375967446958272659339422079374967986527476704640318341695352682828112848895137574049947874590258984961542277016694074941144758764230139479953577086330590763926665641730723476001195723877109915098953226228814283363401946488526933801333199112837821030855254727719241293142261161197598190890492188672903084559692493249598603752506773970183387502609744617342593624177913994867277167720565112366958335084027783242371170458697467952267813937194414995277752899550312258704064040543570161834031867551918956405827461918904684007098916625073171848313989222786160361507848741877452990429726168389514671591116021603002289960703356076760201068829262159424974205964371365214910220000671789904662773026340252519400212538892046915719826343006047909267646005631894445657979686932115736158104461908134573873558262861384603128349667293823901990722273903654900940339741772475020871743611233146807673143858656302259814517561182027025947276856167660927300424325904066357872057216050520413003105805151331466454235293432799183665316870809327995969244133677087600292130279265301702133949842889235472076955960456377714431012979202348268633081290373906823948339512639907420890371678942023556793648096679804207558714848393731821059287693663480617343841146317240675735869821013931954149973175347963021796776001727002726220991578290531619295614987233812390670336191382532081841434394302828892055785117118800414172134174552807038226544462635468868168170713583713321214488800580626263991952584457658132066129473214506734302540490655229083356717193059927092192880234986386234504946699048391678730654969731108030714551824017250628016106636261176773400863896615052672977088676442662446730202550465402852616960488878951919100939611425009691327398881022445708000074795967874791866661505744005734232528912948054109031447280413679977040686364336930991038235783951730982398909858530621413495106207529436822422029981214193503863131851850481178032413146953379643942368567000012417214095476726974193383875558779349748049410462265002725889821775299385550679595174244983507949987844818000704981560816277927073612040953848337949134365559649530722416589119646696802598948146128992843808166707644110181159623366248950345190634845192457912118391734681454761433018837148124313051130344690330283834026709651917177090131677710162286696808512341036632467862365825271612278010731743752844606305183655552171680163993890681453288405744114899401516658756162547031035189076173965633845726502295722901950882686704995212310618419659163415718857740103940168075653257743205410175427655823270681218391992552930884966154042483595700499954529649574674310824686768661695930801266973885724254082336838003876142653970185492498745828635173820980173469995264738301953321162090042749274931694044717007669930234833205406508311718555436955844278949530676191861659494591553904144778943841966118464206822909896198910947263304992060735073965884960716232703001105950821222438369868914654210874549120801447734240114642148179306201563656384703151974400683260353986771368337113957541630891372782035000412326375017020059589243032377265262999526905404577491212291013934356831363140594233439116346989974060031460433968263555068295723556780108014728773654275950705250389579026558689009960710742138438477469443412890310901703838559143848523637891722049718969986644398464657136951026521928170430776641225280665516076496847167717727602381285615570894877833106335170013276109103530505844300442832982392781715205802175450234405961794485516594753031294076101672229698774623900214681361751338371644130342798973310180807626743632194456674807671710878924486086295627825848481458555666672626626304379091145220671182650206436242908612129062595627734839997282522768282966573178516512994955228977340093704041800400656720236378323538265321721835245593397050635736314631857675895944624903633585618695612105857078377275663486185285718428152307384134862526190890096099796291729177619426703268161976079943277046320483644426028180555461434698320767698380149002086809515259954937525057460650286974798454046595903036150793266929880182520645475350934578771536675321264039518813853422349820308053604634434614039970136110594979805921915702544740252539750674422846005034815074798906338947234506671575205713098515964764562931221984164883435054305171038521360087079995279207302071221932845312401190249766299930482959317758227655417589872588909495110881479229347164751490025985495909432311049005948707390050241508908492380900318551465117758077194539513900404188014640915023341102998701070991020150627694410883804388324801127444509670702326094469609350559156342306252983888059276247362189572567922077852641115585221787191899152357225549758711969747017727886403686431529511846347025230967737389371189794831574873075246129905458307701810758112940481081383495670614470045387060796696537299721182336379636587047065434693442860335152042140474742695463923253650361333718372714118337361542050045948117124289275430594936530306575899303497756230066365186012744804027954811463549527543735412349798197027019774399770365978717009537011805711089499021609702616880705227343567179193000857155573671000427528770331270794388917312995938163584129562732356752293105442919643774434934296125353346304222633499423771994076874485854082676200602790919674539369748224511272790162333780483288233640400151832736962853646212079411709201123241250365977981169230954867102106948122582979331045956750884672033323560050839870822675597147808024744583743579515826609228136390752827408059493345102523894525226226678980294547379583979835681108882994715472693859934621193248462842553779090018340936748685836551888494401413301193581027126192110553978944117974634656112495563469892685691946649850525990350193931875089089525249332910056705181937504035272341638779638935123774927851279471247672738312527132334652355307631058742227230479665432171910660886886766458096103950149573536841921507838794917529699784652201036454534268334610049999198137969039037564952200044452089806816456952033341330340026973481502002623678306207376338721208130478125085315144850915809445802326153940508336409270552500778077728072072175845738417128905964579730147195339426402999042498640189275151776729086362574570429233710521722701825992672218354259481882946051679424580701779771654614343521913287503122240585558087316731353473791278981387426428980469135649155316932745304339236643336990965142186024487661365609950829015235469094198742551022866414151806259134616093592155603697727680793409892759834739090600252708664503842850352722499700264193274811732365747485744108190206129060667509616228445329972613695769560894132507454965431423805504633309121739732043049889095072075306498956560814038073109775243479497387654758776673440637320887383673464007034019255934455582887716680946397537828219225485638166581747438522760936884445794696479996462090058776064967893256250589266425103699637914561993945406040217664997195350885298481947259002198320731928754102793448854194313246013519738782439841042960507614906926285696223427044780206768421854181128610479870408861060909603135066513642622496385921361561584286132487384666467369544142138731866967679229240649623520868603389299075187815662878279578674890735814502629419576259436070458331956371306689169363636381599800904463449273775249121852309219246346982272412609222326754547043857140598978967278578873352590578613334924049693119800603863265346551605939811962512327281831483934590727515958128094409676339071223692582006874865536181767358585321438513614248193080790187421982685284488065832840028784908833412177179291683045373672185104109437741139746308705528507057052146652840367073747342968404551426873032254733279594639266710502143744115402965107371552088818401368915615273313971717388205702188274105312431643225290491342964056816964982986515341801942683573877809318154139934930273157490693534618073978659406739085856039299032986569138850741256874803327748813573861486039965396575934190289241920715840434937668503238687529723927139399281543530848972288128113359316670773189812940211907477178124262039502729242645462049297554671149965233391113488321970487658416275330319965193486729228320872519632299746931938199308515981416680357270323009124298728867782067586130394355619266716928067614054090142728845409355226031933714047886021396938682960885063662894484009237489381894662304101935347641491372430420277626047007427743992216741530485171370597546981309369768928039676395581220394666039530829511158492627821499384590752227903556931098952312553677943448139751265613572694128425257158572633120784384638214751256046810511837450739579572692928969979619062840146079256887769901496381218144508568891234240445515290274450622294168693844210462025502712431589030473941881186040502505119146017634542696733098537891364757591569004683136844792002965376822339468020321259603364330882538833758753612718452877711882702169835506075852678616436588980345604881439095093122313532531629501218534597591698856717132590092757582707804985276008690835920913495713955853237341248218568680820810377804018807706334100897318391439169873367139990326800158110775265505789445960670974738648031002174178048871467327971872101953229957407564130838531385949477088948542419245921510642139656534473492496453963703208271421964041989509449388840192835063100799559443078390464935026509044735287572612616676212343911999773112028837686498128627104020268942294077550067151174133235224975252472021988224270913526974035444221402310505225804134979766265884251793540196550537078689733958356229306163007053902480476093247011996958465558073940619594939007803715682320483972218233573170780105811279582171900809211755711065257920208755871963692336519541474673741295255928481704640951888607088065628220515668723964921335773817847611779316381498264287708104868688460088610977828874471668291295609952554800550196603215225998280915939622818473927941341495618428085420753854489873871018987761479794114293727971232622957300427187993631628403020473251071956222060818178772403646929543112263378300379055628704676460222335102682220747598872105271168734630422960540583241112197079971393895661606749655927212027641175064770459212097625866751297326047860704873661051408656368560922603895313890762811658560593859959878864263464536430067270137644312846871941594871298798339544454610711639665720347800461358064847026486952696752077569862738212697041038959066562558641580554931247807540441330131553016529252326292376620969540261125091026113018259613998941618049848756262992920240529455289317251609541298660830513399160359032433295590647268642815135982291017346023313884400572339963196566264734626009034683769438437070715599565343641921040032135074015682263054838480382160041206469154957831106264513924718217065821847420990490268401404621460517730419434848239757659172203346150098115280090935231174069007082363409164498927744110865573796770248194929019356919189506108070053819090180529446633477169920813368103205334064464317875689747546858050140537591126281598847520789417915550023714071849594529149711078165970918125868496453691611886574052456423820233584228749998773989088114785434805901227475801272422698130487574641229533048591872256620291848831591141754403006708734077054422213728500355661787108145777363694318286579398034740120547265573330400224660388833050314468816619327608607817826382509263926250445924805579040139932310712226570131870100241925422331696188922283579856987686235107837505323377436725172125697053438722344182770331571564338173344020315225296201162256144332272043349405163913296839048039462122783727402380383913017508000151449499229380216669262140371389419215164756325836966863612699065221504125206416656331846321988758102979888661739726996516914640342431600699633260985375421887512545553516745019708431878687255319054395608360277508510702299459085993420102878516573077274782343047691134344805979926455871699793646063002488096594261791253445272140868972988043458165090563284077853104848138175871121021765638230235927148281743585440660027726241788903779425801451116031242556151158840872118674528449430805907359400312102725960614768664613783028110889252672819059034739309566328729306273823588701820926138288067262324891201770117609148274820485314351313299721650686404279984042655633810850436040212078563152220386249251214835340849367056510444290371979715281098449794411250997573944483985613067885497371093345513148694219987558451647334069638192722801674071477006175432658156267835514476903603432699142517655904024120310811282192845448945818004591075793430537189317546741213237271048447472395560782133523858942328134104189349251800846414650816013290652560677702916216370129409465257344987354982290445172727121081477881690330904895573338148292990095029724716636309794880761005098431886356927671265097262935945172565192802755468401898638846195946391539048464522664400342188019845233147523176333017173062459333806529410782035650715424249693542621421012491567798139592219574997889539092299467990536161655337403360568039479674716633587110218164693756668446181904029414718917338530222782076292229705590919859233284114540241151298740446852710250055676744524559292784107069078516940899826401466582099553184984451320033332355261238047200084379665492980594408322227834259944773058321720342849678745028362676673057408562257208087193661482242694821082426642328375289119258753945675169710231607745449623883347561032916152942570217000545809422621713017869886196494571322739219257628631118641257375963709810597287112283405640255432714996664388404426819128638662744980258715028103619828308869456352256668182486100997064556464777097063810301313776630131724600284997006327833187155010566560472142423090693379888904114783671630780242364605908660005395413259696867297432741513843203748089816404706656591026084152278002615348174881335032104377387484052512187210608543079835190433267585816725654991054505369790260168474955018796161471736902377753893452362723452935285324464564673076225788395543360038358589521419946800367172103371754852736190003111004389620397528383409517547436521881265806392238403622371143298637033162398715226315035677840666688362963329604186748930431540491895348200351798821087956787234279729448975801248280159567079526748352975256816429645078601490175807719636439216090125074448172907978594876964180407554506204877581276424548279956853379178584403389105202703449706510723556829321834537034054253101617755443587190107043014476781023006366656524552705372378870831636571301160196533610952116808988693841538778763725664974929443745926231238477012651411810575457623129226230973679480101376134033948614960327322625139367646274869676902268138224549356216235599613372548032850267776595498591978159090880553142224515731515145142245603780602693788441866670904449501969671026819900738227913800272903471742268772180526864639116366041950190069773933425978209846590750771911400918830421328366689402397995416485908443263973598549413886393720418737491752529276959156487645044035923953349474978324713913033741418352201916799369886358164721098979292197789509088599007645829768194743288264654917642008065753913931112067802305666539562661602225047179592696255281173289663818439529268129300000684447873173274340432667258346310931375244334563239121054521217858793752867470169948028129134921160949807665251713343363149411412190794113911609589072488973065110999326043467714413022655719092870108846959850078667478862036775371090413140350708462316514066835435263062857361541199054372312904554800265383482433628552601318216676067209554114278260090400048604014733963870922131342097002020176035649901634329324141954719095994092028495718013158826407468836757342458209009432377180272414055898929770220684693641393911630691336301255253014055729424066791187193708390495324520675768669829756814480999369593713868363718228309359975156608092661155769092486660763509633625810825916533470229692616341666177113242699012566930360952633742186119290732151749446278977158772272066389430906936253550118096692270531800555728233507621620827471035218154743000604783070662307791480420180938621087588012169007832402510269868125989974887732530988298485020673566723019637834490453100164380662213000483585113258541251689799389326628578222484058080054294646796581161893151395169546165028445952213459099874795088593667578689534159679237975960556387846059079882827503927110533972940705740125616723811793255047928515535518105060874077206889296315823427106366892290874696280337871154644102399205569347956300975389271850964360204098444192082509818918058600844137254688093684265311312658645910003586961075924234675184890520047505396885624632487323404192764526736663999446859354131239924682002632192329459040470703258151099781495107993519808575758760813064505552867237780978630444081201855081541599146402655062552564843887523705285227722711057818858193312552098380007637569994327299965783162546155487370714123397319256194927127844450960176946954589752794370740278054732385050415668670157760135700937152822143812062087285699071407690333935937722850906223087875177353401347537070709392226209682623422257984319604667300478419163120496812971572974450683433731171240992434018364089540690648800827242583523349503931359760784643617547815773053129111261768518374578869462962472526091961633287336935741800676681934769490928517992093199337785764184344133412880980930903274785580828170325355522078140428946158394703614677371002557378470188866203583905983591549749291614086801469400420749856356527195338494418558931220742129180704522254251683167965583359858998929943083984911285655468210758440839044507106164711854719449566114997079983811966887886464461721970556317559197345867871368318449038098036847738339589299088149805811004500361195607298609243410194960537812651593439807086848957579595787871645006900788029730797706471261969438840653179066924187797277551024998487234138773785358923736074498641444001512911810452150415397346496996129144351153236718222573665933617506933373922221532121507865965499278023557706538535583114148551376445864536786058063360559411010199671713238109100126785216971738243982275631621235239387432807162225167737570252929682317723568981225752965146616659750266834824666652705095532324197928113122579415091006518465832179271732090553713331133390408419096940673572072967899804124462848841177425185488910158711243098577213471558669355047121633817608378295962961441034026652019778894476460758715971914162319857977131324713199313827935550703041042374049628002381849772690452331667646134348722983640391957175433929349455884420638343713387348487587167450789662973851396630940050106923258411931797031254457608263922148483159830240918225266801909940559543788833110436150299204519532821109730415030092712473915953803087451168189641238592585170010726886058370942857367578196234107503559639181813651897382334163003410879272200628440961594602326094182255525696732417555889292791899794893667110007717577259650095085503010735486915894699673673498571262940001161663998372801081428293870224903305353941922213195148343088109178807613688927052415699414735814337470124114531409933491856692017562902408822105287416253776908641876626629300479085633599823359397603030659968570281267641724203706060695566244347072133539746594057603229133626612784218568901886688506133892456300942814195553672584626978681999747178747808379710454083409408777324822726512832400398979728447867221279687209036596664127060621593506058017441302890846169322177275618610645607051101428711153552696601944930716411594612117025347581219060370135964314841645136257716206759439533083231212901065158774825626691314798711570803633486364272443952010140633728192006963791684524196988020311159125465931919696957748144863576283272239814645629303013521636597449326920449337603744978788024101794879084216748156317928809990696986228920799442643827026617108325908522461193977449571632174872257105310767995551540526862885566874891887568143694881416428124844171390997956463458660544777214579624539459233664640209707270765830116516488614921914066648336569725877741774406599848093744307988170492080545716976076903530377244806531464977391717109075170462330752277870780094434775834317194000783438389771394371067513974705245572306823142152524697821449891769454621915559114356955594585935503284224771110244002120254209002700329113337070176458580127056907750077115349746083413280467716672138106253073841325608433000951374511176246591494772991419778118499466099801316840768401270343063865290624295694715038580433318772844910802242521079071479053798523396714193339318835486418855750945799901857872488749446094208005199771165324263919767258017274209860706107270297986523428106400305448827742956175355960194407713624895061765781691378435677132289131326037500826538977909587514866958583732862829997237583601432990513911052109156286533756872135761951872913821757816455560200710943334089743458081247590564350966862748411768448663222897780026893156208791579157626806793075312179262430654034451080250741692563791821230720888417737282138830842908844537380125038873401199462018821827158261995760984358392722214272770812327827101211157352584028779561483434143587065325409150333435716127369586316305576461729874943576412444844656551679887820742383380732862841373355303384864487829334935255024395587866072724393007169343489270608629360441254259646246498416099280675942098860961700803354653165429934653582997692522211445407240714430128148526990696330806600120353454918806919336672950117792373335027075645249935469656697985681492986538901349829833168930496805116610227459084753552215032757066037724080302144561212526495991938860613646144777373355911779825173056995482838043871344964752673513518978343731768050145333524585315724342700129163704784261885929057679793062921943968013750009253898822182053220337388330572269808446107118723981310971028815893316973165958292542583501821503223494638739223709995681396238008100624120020909897700509983926967939402216640020302321519625918229066996821746442017147108376391051605890451825500205719038823036934206837624607945064110074508454233977821410606712578703466131445210882948268404613321982581227449966744132705764482935986978629419012997755874875783533482404693013318747085655434509428118610982480467053544075754752183945154202643399074505938400899322397864447878869573221276161642185569972735879424527836325789316500648538711870137412568583502782273669522519684662747667054479923159090928766890206208158643312279317518528129187828474333295247468925010163047990002535362856325671108937460490084579008425753662008387245678685133794806124514217785708931175287046534541247102835105737126496332967482670169929590901373016959414022499961358531231984509090106533105484095231638950476187375857479934810597289358551775190469187367860302637627206036206781509492439816681239553652107839676391433327671575209025405280937870671782501890927123393660631237737390656810997983314018945411193383298367530700012225603746270212261222144972916247634266504855087750966353736819690241956374268142768243799947715364712916212219325511224420436035118275779280075035601632406936569622735699339391325541699911073413362354509102842034142177437547374315714364146024989778168579395783219452384091482510494452260435317505371586786063120313884647014048023323879195017942464746339373999588528338229095444602495278545116629623102261027154404631534648123029920709298695582507394930697008693691551921821688301622261889162671347302631086698203884902130073248201874497370108061903558220025548203068703280173160013102711965866032344821657557088353821404016392664449901227500930263991727632870830792654876764225787002952099483032064951507086452362960295642160663607078285106756074547673462490940984537433623026039176203758828587654227959088851199759202240917370333948808060805845945125272363547056069475877157536696576250472371024137965975602585350313999261536761470493494429734766493593360826760882494181941347629165732222103072339086380612155705065683796195022098700858469558483183423843301299374226198923988891644337991001528094200159341546044044020651830328040613477849859898286014571524755440225529196633413774183175918268498084920466683813789985684255630025986701323764818962565825659068867370036471687938916028027723503440010549717759259495489209511388870435103072388921652215834156051968903987422938392081426180960343191434646922034461487102772040992611962442031548453790557436450489351088114907669454829600586347639977337936283980694665773013947618462382252148858300145302610890619515775086971914244555046889835020673119929263695787294933965445735331829320048960514973409010958013988364529631450645769914972656028279043373508809470388634333482026407804963138946070643177255842337883586462169416230243081472097557890913089139277755615059026423238525135641510091851037744216060644255757617856086874849920522097713401671992145995382634831720426864296094967529752089771346937605594036882881262465679475048014446434387935122494167957041995720376669571324038642795080558132774215135613642324674914170533165767782243110124742808152785846142418171144903432763591787603988848510595129800099664852077443760916088087287091920703757218657731348236182026649825376784602792593697093091236729562848744689787803796342082587969063238489332676594897290431007852692452504450211344332418102605449223200004932499786170278216617135590065273522330535796353038146351773333154889086624878615518243970944300225317004605445465091189118834418003830368709631373001256016731401823377119005548506286386482133953913497503693896611454667732976440072520968115268142061532190482419090285783965832897036487889413064816133653372539856508067243799489712742469707108669607563575464340881872632539108755616825268903210976816728203766013308479525561431039087436733182824707524481417199694081628489387103234266586426918708102343332674668305206634113288970466240489153706637776362026658503162006656892156245398010141749038240844233629575375706782901871153044281101926625406667204973078415859486237838474029902231733222062192651568459279989991166359053286275988246991207292705455034613761730102794356194823916135442223036388872581621747206509409216426169145407675615110650058530529781974428243585485721377484711636654649294080050712324129730477448580211208853970905621750250830974061588575827657183933784154840479591055975658801038470939526085308172014075371641201437226530348070033480629421953679571078022089879264478877741467127048122897917507607458755660886112557189127086445343752126541813611538421579441472179483143943656747638691044945976635690758946660865482948054099952197863664958183968599696268021871947271421842691505781135363782254559486309214256901818128607822337902780370524197922103987937533581861979515648745727831847525837113825322578821854611742877892893564900129014588570477007133319566781649206242904305802279622782811229238035969737542535646262092947467361293154988391427991158527383936139061047351513535976724939168934047101324474297736421578729165662799023544409648456681206317186042085961431587643864729648362114997249246091489965186903595807548502108055832413108146216635941152076551533163442354065418235585995009686614781463012788743379138573085295553834237159277845539135879820678410063717606966253917326580786035047292807580375916789836953328959486092336188219097862986668764344107970639336842046492941813551628199549294437249491544338916510680475990311085823510704101170535841142651860914304181215248560594047118026622565139170759328732170333354250844215432618312805840177658414184865015699242702499758237758577360021185134613111023961974353592534876856283387777527357295392031312093513494814288949045676166023807043869049037703649358679733760048163483085661099139686851872403624789104236601696439438891428657300923321219358075786937800351599183784470199783949245176558488177710881614825239280978889072434469988862106242243262572787292029012935397093106513335173023175983987287023538485424944905356840460682113016231807253065450511243194694876728279739305352150916308571372291294309131918615261809581015523620818967022812895600468644971915071846055163676458544403138840887190095798554753710284540455665598131438796236072606886597825095152895547647252934520885621393149947890426000917923221018116694127636646729406713116369513580583054784445068252873450440450747331501309355383142386058803017642256795773940378667783112325619057579606789895651244700161623414148507515262191662104908016781874366801068325286700652692872898321646311715390198501566387233809163743716791497854790097443602257625814601442181556642990051051886923330521967313878607096258137574670507113911347732628313094075065853445120192345939181782447879541120377350533937651804546793856683937678897804186883818737952168645062325830018655091057697960355802652628148485276567775142293711926870709999983880029598826549522566049697538405747454220448415211472813971134105683080294468641652666663130189081177738571948372907303780297174137946046993857524999988530164531157267175822602889410449562823220799040152911891225548089609118509365736921745435369849795730066034073834817667969587366944410103893657550637934291139731455909936542002361704431635678811337776489841519029423389272290464291130770893515597503823545381686748549025540663517835915961455595489598602740071105053960331260499278163204327725951013824940016952572343467515230410622989791913552748743193460947936596749450693904359838860371827737947593958234032053438679958450805955113310496018776450350574755372208194750655380963645046055852242128520445396038632738873516566444040666372600270094180941245611097836455026580691505241834352248401050217299310787131952104096142368061811524545363149311893771764107627463972538584511590863334856608524425988323059598480179422114849355792964879806908412198644711781412772171645893261790775349070838227708222749505913664205789043895296504372676715756637323883322611925162869762057575129844004069910541079549001816004321592177445564394176872103768095971622059913121128468986120249307597772212870073011681051399456058495375479707163101147437081734173821520557155062861211106528195217927113208857876774988644467610839841573869665549746901730557599718578217630927719466203238720519589036456809582028661897582519222329331711739202568117530336696676121758059939679650865617962766703756171787089482132727055935592129018645021412159534627536596897103017939777462003259975974667013233542863148748933298075333210039631896712702146034733924084799058580978945402035744603424850549812962919923790445176440506946256143654522516235179201682655878578961092950880296550885412386077403795694492597802540223024386290800542882510806093189452774484333374957531972753172856376268347766685656283300462071052281548555314612396571691200194337671330108944051329353657603127542871248784609751046082782664829193628277439224674210858617719266388330861169749938163159356264934645296784821947635266551163799359294881788621364506631734257635845167414442285383533080298470747613883969786908293869732549904697464593755440778362442614694857371482411525559820574926840652904387984759947114818910743804080712822163428540106480703408986062290270025424100330635638336093274337474809927893988774089714665108917873181299974823762008887041805401355434593469013680022017127260838647697981366793959004880687319511804876540638675245663959709407788951644476261009047759896907480036285881865686430924811288178539109895480127065285071443942027142063300270816057226952818182951692308900009682984539966546453401641235860035298023979100263129504769347503242102812497945718314262190731874106182040704219906419236965572361201830322947265294843288197200681781061181378001397175826411654822114851213693936689164284561326843589121781109046575577332583091497785197183632184254068394284557594623495347724160101607157022109885112994890647818340005369881580422073246526442764608926875978685131468404904021414878961765536060405972881539149434971137046862020047269584640055474690048066893790151338333697823621476954163423383869413068272540509784013842600927427114218095366763810461411282814938259435596725257632315273653808327272842857148361770726224787500353911244946586567698127934300599035652930808761209788101423902070603374364570546074466822308568772042511472687337601663163993768676993708925353663748276286026341737423207853957844380340103875991958361933913180474782417163518760582892984505585450326061219569777515632774210910444981169678613305953031464164136835365552710775521929052036894343011435688391441366992775190177433915102506094157908771813456067460544408938774046135545023878800598559874104505007559301973253079345925166469998997449879403321991399498272933279179191665895735605082145096479390866103362525546179971728879163255021547999761752838862667522842491732930089553612268656114648711517587874739692566377480397092023836114470236918965085034464946123763266624725767839809988918686926824895824502194589031156421007590398262017659849770831828455560421234387362481203658320968674507237802090814447335252463477113222057555014529744123087412884733024977156677601035382593005301460132701127435321762379084242377427480116900339356313186075118465649270687987083034736476456806614214097819011331795366508769055820901529559723468968434712184648208560384641498347946227011553028954284699883219512194281087102974894685503927778400787570317257668150477062721002330248372034305662050098074694212979011272055100031538206962935796962530052744949333626620527820165303912621577213694184760404638833234370029869449451721024471952554290084918303961597779524111130405350823717402782048831372391183690409215622267379456935352117735561665548614738486515010057901706139805834067452611785028656341146083159889946814059074298967371055889988585071645156379646609795511522276182225753670402405979707943780747621698722999213556793990740851443709495144401456260070498998934560273419713652609050275515124289373460249491646019981254393332593645355067276843815117440856845372122179810361522681960786018058311162249024209678827986289073101961213225149776787000315906372674141266943208040465440756860987350969989725017320179376392483331847115036565479924784064445230778207435606899985314494963746932792670996215947980555094351933275636741418767296367744789602290745019868838976732046201968848522530628717376943953901972907879845696934159610924259222428480712600905801890636888879493119153608528178148436168287613005255416616686378654116377738306300282841784989765115248042444115748473837274111846002641725922154089974011886496671446276401766284567440353203358393738096078600480063409996937499487592491525846963256724816733566981456320463761949956684430600774738696974670673307511550457600969646228774733387265875429495625808959786999545594137108782555361040891674554162150296282592683080840261738432049744832822614122643000978164156285076274793343337883986750296949596705777747167382487488739612103708441325694758797906117036591608363706411078864125659523369190468374790483044802169940203832335421451327764270236189322901217748787097337535865105885368606423854353532630870566538019416993445392974531794623200370612206537416394725064828181430300847025431876082896208452897606209894206353222854526760915310064074159469888400746317024892026406152571037554720469233206520501613125952803162808053298810375341128111931945455945604480165632984069485082569307786487855171425377133091395512656831842682453821738176060731494684400652547850461392367526166546960637513082004145558059537093617321936646713550513038677774512299253456202830319468842060786499586363461123262646429495469513355014699853812404428567545062821166225679802618635254209336116991024994657359323943480996146370500973050995496628229698853194828418260217072160505018250900255421111011758154905587577692101337567961470704604843802361716141055165683533971447418642269713369581876291110493080383622253002077262097285939625245073019372577661927308253092710980724926898961044851403033810416400547311170411886468869569457938757672535306244892295280045410813083247032311561597087218071676024730172513053037189240016423240569041640422216463071932770620121264724895931673181118656530647464558603351247627853717374304930333004080314878261385350586129288140960262820766791404130973947262991877332589835060060257154920342343375658684192877695221605980321368892372158814612958153198438825774074777297994444136453623410060557316693955829949900207702333528092387469786478893910506346281208399896256300313351134398726404897833324852050197955638582903020772873031186538645388291074737582065606969226020259564417027351577771335232536108104081485481771462889660177373672068567131623293863516011962779140242319184516846622396281510064846322374208068430320076371110977833711743607167539562913907384227963792534339871784326318105924279035924551461195580511131730176255465459989073600258870591921592223980679270511769317308237538233945762848689882689281526313080967386524698527234085099262847613330751374054805190916435139999407242602172033601730930010303168814552046366320869922833883354380556360767425812924880467884634192319971791688817513767408307997233477503329929518861059042481360912388306376209303970503990389515242044887182116417561985549979197857449331636368497745082012325440135652519162387270170075571949981611586201498728557583158343878251845525516338696347451050693638880264366207926243581116504705958295194817723123095692204272937927192467406346606802397720971246827247442758099699511014234340697509462641123488435258028606214533545848141626982694477707883159241327211016132068921762407888053449113198119211120094018086031404651846901165552072380124380075968093202768359145573894875006008446758038722094140134383805527993888556083458938939569517959362470684765332865577214003077017337722333738009707734802266276724616608201858166848052375770087497050389103722270493689596706886533876163761515636597194325626801206435997760594934706644163308162557566893444951055024502579347591694955870820408715504590451851031559446703572867586215797966285936840109907475454094453355982437151274104425754064894971071770838337589495325643350705292479279189463245427966231336859082223225985466367817570120239595682204755717957944414618641991261976786630699474257426634088219580957857529406468962442026348463574167721064200478048825480571093659135348233489818251069391425370637708576883051915551691909295320737892157164179791944528836857636464791257590468848200857791611123110078350503359619443944077810345685386679566292998380316895358213010978693104637565653990364953279292380364981694397219252776966819491618513745994316423975270865135234575487009164478301976272286927772026330592326971993335717258538658546156219072920773687952362529724897693392104318373549738343200214830880177621791001459802952493025403007850125710648128741298275306071771718669035812937011794976858019659073751786850011181214131385759817237887059335902784318984273919117086918072895009815060371067083433085732506609050088974698939906078779390557438123370536051453340239762783336919020348999057776200652480334215819858340318814441608423295279595373455556089882982562774542933669222738222833024213904454224122195555979662906847507524097814021756026069826229518495463970299139476658454785356095865853081492398859373027437033661407924830885926743684219028257546619307469769833653622915167628237972211532687192029632988657160672915994148133739016964797016312615278913749419845485103834029289275860227286416314689727175021778445248842769765950192789083723219463839518093929273311021477748706130104602486357517180402642997839672516519850840093335911993551444527477951812501752589954086336267662474457781735744822428626671779864138958092863134093891213257967542495034716396681786300927491728324244537895943940035923001878732048124044392758053920093694014077218865122846766214237209468540250212101135490624104011177124214417587929418700877339132840381660888744142111867626622501380300740215031157375783065150513560772775701125780313631810468949384484459551204444337098427589207235322970417406786849816315325125307643474746001530664167691596644701012731711088840513238773988597729788946353401050762554718120363071910484392806707882992812063110250321823287250412192208243937410924301060867433788255130146689753377432424730284988786016025928073209820055541030539617553646899755446685542468422211646601209447234830882760294537881962087853039287955855423888908097229177134482513647035593365187365710983070803013259175783160718487938521732991432577768787206021378715294518080871755517900507140814819895504173037942597053939785565535022183763747960316505712843588485462223039650911449335102392664314130924245609180659401747429409641657036096414897012985540926015448611674799384133553444047685518626331002291326671148061057327997512700173409267707559431595512755406916008241842495364421713688590769941762449695002086666681955513309030778040002127012038316159298563767956776752028639599967069228772420776423634987713108897551010699409482795233970180325991490001290275437376188457234294571956100872850354909981089377922820245864850199318447277482255265791349657042227133882491177034453869851270347622514030581459754722314693124804276702440556708648690962624694448644538484510297782125860591056349832029596892642170194571096773087865964638149482014785558286634861352178822591777496695424125396081693938244141697948644627312062685926266785637661870517904003371216134872089286116521631329642292629051433159022802210025898722933807108089453291961187350396638666350672387374138992152551501296102552308074897617332323444612983569853711883143802517675810792087346016173414357975996245684728746891067057976212104677813410469335363318796682531601563916619375550743326416268553837443906367034384347054857971354664985288500487918887290398608226645903685816312568205773666960428090662664863754226462974831861943424325002016858671357974073414499169382599116441015133617300689169777998401564298888557500776076641812146889712199432512741217059181389450788333126789899642200051113053012371443669030350672949877244254309983793314559633210240414215738588005568748685325759958406663985793332879792032484820833381682225322825356763045979587798906835360669639000976678948255182358911274001833495776003438139521373373343410526723531838147533093786723435896632280293390885195623364397454724572167503200710535816169874955291062641729767333968201366448006257285748006555498080909790946985157139936855480217716481135907471518287357246838018735671203983914918747388530353965295892513711840966856271922065155452610210271943384353689980782199720307683398639303420039443175247607679644199771529516429395681581405268296777110177025745753387792883340304570686365535363942852233807747333578942620934956640971521881391438316400839297085187642562465751884188059082679481296172858038847838561556232994165968536018593498360704620595115745333053297052747256202484595918180577850444694498719398493968923551164762322673925634454465578691420384807777789087213368812015426922225048589965556830807347348955768924682243154164363064656992389815907802994325794606497283752571323686520768879299072235917250471559412149299706265518067882435813247011193924979504369406724331385669165016029522573738775385357673449618312092571099760974531233640275177742152886848511484005910061074367585245324124611611100680271523965834387311338510459033042032745000735774311832565781510514449706852201645396608361982429071933078686476062679440115187486501261617913044880177413982309132361455523913001677907234795317174542464155878841279039359679935499310893689015353000618720506033179767867382501323392819422928919691413783318643303002343003081374044620472011826660370427582184111970932982558301890636744823451973914424512636724257683010031895409928499010496098790796393376549778369557353855610777156011328449222626638031827609792687658408624284237311279153553001107953686127255418987122840602315285405702873958313157521961374258524232550867180685884320214369803540519080389136617303746274015603241746235150810203034981270125329561721456983730381603970157752133213199221812978700121868348306187705626414820977608355743827839924591058571670938096426011973649136474136247351044681023566206146415097838326320289948874961910385537895219874373642344787508747927622386177260751822502497254546429034036485912687750334742956857887588150211884546636660463327011436626312441484656047452234311183306915884128347153901867704293319290751819966583814771621310115770637648715123412594609771252862555480375616962575388188708330932884668404060573904333749342655869803581264462904693087454691635804371602511455580782523130281574582680058416093356484590275793134664592597195963666894125259625406575550186824548101893584886463653125583409653003877209945372932389326492909021120960802941391692339335213216212410201449287613498247560381937628497973242743159810142527999130321288236756535569817135463847478356294095916861218503649819970600271458617804344434502190243897149917611719931650810510140236507538215024347176797577129522881543792259859925237948538561345456268102674898807857491070941339423909687570140641641168459561876521052185468849116919802418267420034256304100751988254315746090880165402491026506273334308819572846122021830879130763003788182816636594161262714141126166106198193898617638838500919378744774370587291325639795126282026657219855872321543800481626235564178827185014313798474792707513687020640192400197489296344101030732371654074227041581168608132507948086484296379554907482927854574707088789503321245726539435363467772109635525329409440000918642652190070321007276328396885643821733943118032762279029444007300123706219048240077479805152431903265178111743890198577339691208942689456086804733874334999452767458987548981807936839392833491651426579396816330937389641218629752043007144028215635398325725958096900229812140093937788606442213830522570726348715994703827281860863222030601383597826273900812538642732137802823624715463885334590357941137374217428053233349837139035329657549756763613584009376634788392296973865086661569527505048432579197773858245520286340558134861564019865891199984107999558051918521812887875762158939453584451468341292483368627645936340594325020175692936520456481257240837100397595117991481221200746410801078135812970546182708928197737872763855363557731666700491856763146389536826238766432653034372298411161883788192043747121997770355035602835247017562193836618149720875529760907766936280738917003591373973497435987088634656939665016953550730051156713411570174787658569791135919519470364038708848374337197948617468232666441777420383346210790609663390727640269925730026452783504565237694657386137787480012563286269684955306956624615155647733659906270699239401443474259101107948075413357887472215094536303127994394667111536741937192413818825212951494979419996822191043519818333574036202475094051850838941957636741899182325185866353500331274304941310341018638747697295114949931575232576492856610369362708336465582587848140599603480551690542519984918029645398462657545018797343984397934534474892421501415727936824550574742488021994334569077263931238608535182032805573871056176485941976387140657219403970602384985218111659291493695372242864324577137841769898266640077847991331506721634866666817958006271497788345237855720278588474694578267396838775202425368025555410286883482976314140772237606441218579119237558737262504064426201978381823588870659231136377147479580079601625621791177856920651609321164105970303751561900477570308736597664675155163317806234829582593660721439103744755216277297120431900898951043892667278375981242271881341134573727463378155146896344514124972199715326335153220952552100109115294873453302513498252709120502951253076497669786495440862495066552924008445233900475443920823150673987136087804907948739911296856121457767754208207094949475483448168752467699705608492476613375508037411790890571378543777113291150142167247494205675104908051258451830728566916203695452549652296702368147533109897126788155935683578327991221981131078974635513742929683937509149373896309288825360759954292937333650891073514624684590891878288754790078503758680037897907514456417951457043909696463207120432194085414010139319025293318991800471280268677775385496812671882309855895853740058573879563035068212485849706427920836554321638590739215461788749607403088400513205435562232109654195681804168183694966809946647328214911253262721042986839186608729356143932432598678349523531987218695333345923777395079238912066348262929678080694032991760999731749220000555406195548863018455369552376580698057631855769079327267642449613031023387126010541772821400386248494638938167533817579877374053854623720478159145741442942574487123004126850629643212370779423649381938028127058266309773636245978320213025331269017394063114865222918449390855601656833797055837772106496963384168804512776852192868635909633229571966881234755241712018756427193217622510003199497488685988407770360399227386961503871137171127457247560535991817867473943213691874646383243643939193510426946323842915563366324648253073643963651850705601629591727825775021506853164530042058313685995030580762603096495954923198757131730265703542803212414877841816801520408127276343572151891647486286725602018612546878598505616228769873929243962752646093031419535880555173984448250891373617537132393313338136895790953136213581956878325146725397234729014462979716794626234716427914520994126546308468116888954836200937058031909678587261736592169352625360485148013052730502346833193140111002697642368762536576799753941545960942453189196680686330834360144510405896030136267831734122447199479418648016040160208699179919633798246631061833131254530962373092025518276746230838366558611229987970293113998626685206278453509039371995407818876225095053785196535132663819165689819919575039061513325202257079528437298830261838375285864965155846836988435311740372875515154494035796743589652381366863199255665922961581019445452234218889794545536364506641355226245817065794554109295995793845692409377346353102360247036694087398762862387770444186703899972155533343112439697088683446748839183006099433631114558369464320542946867789718723638846896839089944528801862632434937031700484420710491598413387274318472358200531814808170917955765241536397768407940290586699966894608506415795521113605543153699612888952129902740960976034101980969525607983899414959105486724796367720516893818935746517627495991432110911217613627395787684448490624428257748811122647139963075352687097699418945217776257263551391318672753867171538456228544236633966473362737980151914441614355615338650904303527572609108287583919966457848330710840619230587940566908699878101777499728894017878836566868307513647551200351024814533912184571908193870450027094675656277470744909006311163651065582820720855770476414079329395499165469615804175156042595538530893524986674412506148925008289342975943749205455014858963544503208183301402805874747511428906378591415466332801467127446164071380903580246198794061084795001181084418567726118286193075479009916095771395870035232404863578967056336599157534273217369296041283068929345123327647174736019132232345285077718140980536328706226537585413556212143225662705757928317301623036111200125053980513771522255824947371879809044302900069283540459593821372453465446171511998432054183594382127458062867219697736462144122487067338293669825298365060524411897036763259899797784849270682698016983862614648257902462037592316096954568402523491466554133208899732954234532581924811204567664306019363517814738316110334590855020212824303657547334015227129937060515705887041826328280890881791324837736001894231400970568803877291828943286735564800908654156099381875275755446385930739104812814190850821046618887894387331247159204543219583889469392732411731149037196660878917841461923885352978645457811745894032690103429904112445469922848612916845148955503069116302967896948361330103742456559670653088594365467876608534703432331828677093235425512481838382619194859024544426338337212293939323959926063442389482184767521260755222895492449145280308079367511420374207713900917833127730974125626837023677860081346050765851277226801194751023099626159599693740806257939282658317901429646064094450301970265195040198349437972748982048698530696230297794934179094666917561575973814143075343727271050945360900274138612996187310510014951890000265241262136449265410474162587285255081696711083570146559408193117355048413302074119897995077310015020790281850707702897142053885445888765136488157218125259089509159797749260497702638247526470454639039597233182550612207101448060093455117392149355427711391541834578150661386931125273848605547227129273298422006307951768664642212078511866548179978892520530885406188376951103330636289510563689179043374559546832192426038783856864316681343006506160623526430303300304721324973484741369883951366977413790437964775569420274056085224929878437733078012972153708186598591658032683271216130885553358845890078467354976507294396760385959161095632635501699238509300736144067029182951461886590064903917407938031820946647843633526483337909058071508922858593460749016374945809437753325825895279579735523023273966244301028256963653540402784729961028645666971397494212808239824860699977926800849280347921394807228346173513168513783714414732548158218001966983798824811327263869403696997325442961496695889897433757019312244871747420439803147349581797232034248665015710020161973760059983287528660191988079781916840364752904792927463661263116952019172336122665064889151942744382958657966331860088542119469764765738672550339791276811755881628570047359672931133191392486153140789201319829527290008542105179090117706557530350916766481887605731483551735319221378170259915383749312274395384755643005519334839417263990957157230973136291005369417620417127051157036966859168658514946152182205750942355190424332690748423649189860338608665729614987816827242346879998718229475046575874476093310955673306440902030873395860294628338641549887129284372501290179665537932649820098238636423566449592224243974122323132484016805811409768180102804439045668316172514711263949973655756239278877364988070132219352969508406262552121925832862758791477100885471976879508350652738886418869543487882375887787308698573723584928165430151043538683072914766985738650778236412251323901055451027926561947476603495971755927686809774586526162226756120969243608681919111473800707414302664699739239075488709199104729158651110620550222249530916271498414330982211603751101661925366296808647966808459878391711524757831101951886691565405372958728138129493131790401487391013964328373502200727267961003048246925679494362800080273314617190026560821793812818389908496732954519549617280959395816641678698609906348150188447715599194730063462915247085546815326438658633785504146980834643278691945981933803031592888074202585063080067085198122793827311348830248341674450927522781248609918241152847453250348378030171653037493909817573405306015835389443369018226617119080543571456462735235462747764566622858259221607646714976206481966163529296321684184668931844783675175040812412469573159027777072006226781249991808007370848695417426806432199589300712578948317780701604727098849388826776961254979172840128454484439299294450647355735374157434774603757551454359453361449269582812798217259967812040669978606014069865731751633259894694124547967834049810402480183132076519184723067808333705019369427401050324099735493236854648290877486631034931049273815700906328530945006800242632997135886888531385194130648492496457026340127886852786216742333415208604410522869969786607548162453526515048275777025662790272854928848262441898668678565292609250631421040094519459166562023787331111103863490171877881438988525807653530947460205783244328375871142615823149104565548532350474230571778936445580337021420451031901121476741661501440933578775830052762809983557727629564292978960128314084815481352495126116140261549658075568865942096782002546593713610710780521288895694363783102649397630129025407799983758149599621259658575819285389952793119067249992022949121221654703821370095902021847946704098906942464337032215727548367856403056170564041665348025369794449928891794109158265317412410098689108260234554688756968633370857505410317776156151395056764867413601440566802679682238542997890730966530236554439346139649539732945208441869025803693076397647051651797108295442433436271509442157121586071444945471893504498726472234937104476527399212939687477061317908755894814453712401698602284762341744793678379065982218081541313510505539796236221014081662985305503014807046743270332185831115886898959555167836974558090428750920207312272062519463193030343586432743945397778094120129480020583510561847472693212228331131003406291978146257255875928772143968342697187769911583626668996331760556992548345877921651655412369037785576953801765850458449415867383334318500897253858070835172516197510830366133884066682179174615246795520530848894735333395740197793859397003403929904353356405194229710409331199318069415555575159490991569017741523917109468489528971693847188559369603477529023260471767215957484007634159137453332299354971572770951587448219483337134532546415439873324962251090770441096717208169865702696222728894154344044449862392252988891514395122399299631354696629648441264959115597142604507828443300898709604318899386924257711448260566352019502535226739941721613028331361831370058887932557961289850144840542057332790636766793228937301291883464347139442001956723195720303146726551516161408961285465045542518369737069364345082508981867193626522264937590088780056084494744297482897396329237811102113455657272023152517453775589595068559885632739084482133050399350580006942621147238111866155226671539044538811120760923118707982250195835255323827568507233458242287604209641453845477982365689245213794156351360672748245640003478811990591640417508394118215740315383845340855120281802862499122814637043527558308782048676018881862826499388956342390953781866072218541755374237433249713521399489556945600865832507441269425706789511607857398506459034993452266012952053868196106505133263764736186762827947070666805467265960538289760518846822056666066137946081897534352333110779837896083017692001818708574302312137219273266728628738309771467053518201853159809667171464188508909039909643738256177400273732566394341128162399300876171570413259232317552531750905562642943111689853042800571066067172021897976681289841464528102942031524908710686668235344949517077393112819897627793112104669391409802141132924112136984259638690092863749501948155340253661303500142718774297646831528599569655916122149656272093738009765712130678262132674573717761479881189638475523029268659529372044700418071323949091486937056683072689239305028631218029050048821595622238353936922774969954969254909925302064883825689731163280453619749516247946943327826746769266563750938099719909886978712443090300974197127258464992580546688471518030950535799003124291361773538200979690676851686231767353401542887313809588214768481416265246028070787004271818847771305568828620916104645086284643133538747786296894826718885894160820481890094433581875488224545542300364909542088489336188559342689373873778873526485991889870948332666850543333545320468826544089718026815235189133367722623815528488764058783027254045247484138786484799627205948317596373249816843038529282023238811033406455478182182733591751591690284297972384205914049038478395744719109461528773300427976589710484445612464774306962545212836179621664561960362790523561078362400530981086434688575426868163082372161149256693087701525023145658423019778897541679313882782769073481062680446826121404860365166668337211763694021351089713486667050647098156090866588366521123697529785041709819965319901696264822989018994611364880278254752691781381737318810819458486464583560835414830890037499946212963035728261003348598820395242767349986365301774949767835464735778091494670058717627697879013101553417865146035587742393055114144071103228950687253382776633771968778471738106714511442867750563535955448016337432281681465923949147002789609321728011296050812287634425231361292934231655000690946075119622278429170914317803599485981465736675398588226965486556202139879076017989861760832722940569320375147609440191219452358733691766139482349713052539726297527420150400947510022043915807140630577291434617497116473849032933937606966634555852249480746957886485100748039626241957166324620314702387110705475770442192853865272100097279238715652010132493913639372226516416790929808571187344660546941387706477860836954298633573431403851470343527412066730899800004153834988989172971867880023742531632322805176697278923246925718576259200724947470956159450599639527053879105757125439063659409948058589423970250641869908379397182088894805422641857952136604812450017141083464823340847630563668262645156703238309475979117377851072749982153716870128178009193429255341707246961837547509688914605057011222358472157106224613518109868708871183971909172214656626062675799955213643114765196793352271319153437854096660468579830325200501946388033234010227135175482243335475865155225386123906504779957993168002166993622860554247105223524506500955147240516692444906210302304507934837439310368345702392401985464841987045130802146748342726008150754480574521281575758095603093269348835166070063939312296537027084531534108776027807196758280432521467558310854972791621836811302940874999998296908702219819997227558679612107706185449135280256101909393733542585354945081967906631008262686178952315741869697843808966203716105774355065713319052155333088041735339405383403070648579784677437249544404372463116812711009963711566009198860345983430127087250747863631910872465795145827163703585824620394878533273577693453390519090697045613560980455046882613181457488590907585014682645057488350619593685536515959491677067267411047040662138363199591435710310696540572719298151534013824604787371642493295996322372864242865240606725456703117490975645017705018463509942038651112632066568162796135503723753694857198607000690758748422669414931468796212334509328700358651395671461426594259092999709640824141215678632471851597677195751301922252144437479397279559864901310762630408226099628433392772806185957717639499900651007840434343798614185199261612649661228882957088505457005702822440657923736203473924635132916509874968466211918834028545099531806976163507679294470832803122032404033371006810402299370005447207646030182888887753364009613456833718764258521588591955361279353878060663969007506280331899731953770530004654257200080864470827481889319781289843840426854700747872252313727226205726832072227741351632556697999998100384254177311712672035710061792803204315375250045171736303768065074775987714713240960409242499590204290115944401996031676398035896868198777110273458684902187021458908627387027595066604483916072177708124089618261660336573425110281514130364789469256752639468781134642454747675466864602031585919109436228721254460922340171953524352523920929952725358402372614979975568605691193682356057675570051234283226793255825657795122593753235211576461115016587496768785489266650713285483495453113763287054898444799493123295328442287762671017477681904632287897758980635026310614056454632794486356116759267664626312082389630659660790582927230870026632029288927667968682393764243577758360630749586904162244041768407333872019390190787123981090958805494753084812291981395147113137364669359341212676546781364986526460447613779727259827622274240545626427694485866643227679775535535896335690852451278165147464764916988194319300154551983038876086931791255063123210256488206150028108924032606528343816277957729747948818415498950583613116141409203375132373819967630306656229292865478297392086488578973446263603643781677241211080937127980451537118696284048256172626964097418500447064446911851073312439814609590494244206556447645091716058808568068854270632785084036992256797711746678061750414248527472758473190863244959649429972520086781797525468283322204445369598481090311378415356967353949133179823039936394075128099793237645510797433566059448552423580226447722370781007581698008810119339794487322521003836771311412490915415135232289852259243338549703495759370574611303759429306323772106481692188890299792407308034297333134156116192093356900425983897483210023766223583263147371831730457101692701296831994161709324180889749891957359662809740108896104427644339350015681524543996432127842392424128923566408292477097664417094701738326061035048613340573517331080483290129407964815948604386261857841210552030538436031061563417157650651025862607920680343984002076793076083199315547364749895998562350852336697645059054738971722269362927548213586855347627875866727592931142331165044834257841743130980380052782215052718905395860867175726741460091199120814673846144231167006510643957396473486131300495885230747954762087040731968291990681683728047090940288075494598443227014924144471627707783961016838406481779530661852975895313910490146586231520651815409289744419292402500597340613370420028907439403419113737695903062413476131564393551439622371078495621672502389083741856027045513657439433676024716001972138752670194050792313014057923552980253958339254933268656844706131835454941648446440969842582615468347776338229708324099566262099749155522099747862010305191764753165924227821454125961491573900560716896722603297119634472743784329574350913848788531317984646229238508944642415305136853153006792714866103324537593370054127082673049024434855428238153713025167408579467073466784538505430893981510533737116741161464527366523113775801370491353803179473574548925167120457490826212608465939790560885296361131285005397646937152800896331915783352105268760302621189963462887242589555526952447748646582797014703799699234545388852258044354036314224295665197734941158372027573000241830473913821190135006352024191218104670936498505129087652838351724405916349476185266619512257350008609518236169841979670311015903761591874391499299918637009650847811168699782551982141359608114325453502809798578255672725379792484517944412493878893984654187179543898703854190148221757511590217633433969247016442702364564016281245499901036955923537496674420128206234704054776724524050625348589532321069292697945943518552688494896629353765408207622890325488411583453927796227616935120846084073289457928726566595045212738487418160374161524081644595179221140897537779937715366900299667667829478242230515959476820356338193531791236464071493010210860420127498102007114517953870538489506219646620690313961979991252606900388663074479671815840518083067567502379250793947686511905410785479775071264420376881029549477181261055924123590613445386652491723697147122956216765677796843940403018418636105409479072794046688977635844185711573445661269427178156455831268739243195311321268115269823316075103775365476516313328068031266839914157571580021071305966177699156600961589315574781959777346470249413871011927763904794883723195825519765402035959575781838210294966362364545427100935590006282681209714187815262188384168383968928457689965202301663753725885508747318921268157358066970159922922468995876144876409163787333051532622556900035423488975928127382745271909660585672977314199022303203597049750489422935767721393180014543014921035675613900525066627328368360150985879170230936616581593808717806703489839561265716482411646445561670704906624714318771774073051586791503883685707773248007237887583064676596266490638502084694493376947634452883116852769741740071696252020423490173616302787064379796087271645616977213239751568294634283559563052402103120555538988954973949428280457969600482907045540112401361372562816444518114835351108696765444661367533921792012042404280544515938048385881861832890435206097609611258726716016374077054504958225656243366259421547911167289030539840223487154569956186275532121389948715372788296741233660898282767135725746753674653579869874674036953686093488867797778898498922983818205257902180857743852174358134547190306171318917312791623170643613036582245846621665384360238822007245169459676155826438691552364297755183900896133620936643567715634752747532496915046795917307049670599654852886700973678032524509734263791940834204028598714793308691865762172993442680442492991592216328665870958605013772409185464284422399683077620765110415862585318960357674864294894468363124819407401390398433123418288525322759380040453292139072989358493485696544162379528244085556875149816655653962315022583070060245748963445692090988722403763475445262001137857734900682894278448798054992759349489059331862261113965712953622523253004728424297041605806728537143020169036442575270933268543549518466038948448579798866212672811852168757603743715679525021641982699130337376943303969881988345564459375850245742085351778123075100203951712027920967406587959201952673040909288537538716415725481233834393121231330526712913985145075260166548943006573187430630221431584202659850340705668780820700505932986679609850859142244710635551568268972858134306163708138350143879654449603009236912160210519141920796241709825941031880563584973236855741478099304877099031175631763870131632459404642942976952332180237561530411069478726825948583961416285865759509418870468225841878252219367553746877037228748964444234828869933989689067036451919582555312159724078425382341728908733482199342539263660104060887855403825339706513639737766692784425294413982155365030055957105383221724956242056010242897696770886577572804777572189606896300928221876358790449877602227406129262817343667322179974686617021123722293477039012348928430432692910598667605564359597463667427332599386724479020304054377009688458487892823701752468499752060722055745762655808749870164799895284156487419448891804743638163096726561797505870982365969524410743224729880308094517923842506303209336898518583386602678482628302154441716786217054506277165688512894898151305717284094752111934230465018529166730601710191754611891567337032443351089951185539366276903776740395737579100314519082487928162332345612992308291797707027892502434125730462962790805168958764425613883219750226041207296729637000670110619775495768033593512371199124781517568171391440255846974403050011920197772331573274713124870921024853230719926759352410343952757625976536306970640822799822067238792618982013636833322681666865045220044903518437380665902012436927662610345664253893573485181184661080184470744049558314857072102289308968454744630538133937773119197704172803119264874350610987703845796809355279232818333683091659854318983820539288186885827895096144134044295299238314269959049343276623677266476886012651067376421989771479610338173197134548061397163769000440759990680713802116942640538620491389932259211253977014356962591604820295304662163516041402553782405784530508486953145095931436770982844342501892427440913447082373067477621338092718258745071580093185869035550232738248242109387774005608706847313943486238796949258099366331679577104719904040426247849987767956652930101370813607764733004100408076977116671179454136716519190779635867976006928713368660253025078882277170604619614553203931288721046489294717727163036769407357725655694307114225420266848666123091367932049343013100196824679006587948836212076665221287920178548837887553234880373173194014610762603610761470674968543089374487446985863203443284864126478967869930260533695485592498350965628061201759647506439182362270045688868632129298983315926196092838959670882207625126859557719799149131296779461368130302691025559338814221083681162460225395677833449249561469874553444947299237751971464149002564136965171151905664431545275016759899400583217443320464960221138112242208260353334259879548889059480339600343997274490142312533485757401515456150561865467846892272135677216422422293377525536749494006452935828134955436994921122653260404078821803359172829084576210158492188690563800032625710930125982866465599506555612556263068580087490451634480509881414615903391285324839744885787488470213494164534521153073924056275440770347506740591999829013957742002605698234834835547757680911129984778408766805403273381751069505870645577326185957742502394103058413151217405146426404900040219506509527016179340905245514194437889293525968191962512093856968526207055569055466517847804322920626763348904774833211718208824674820463438276641377885650958061807926915698105864486113500827070503147804132539943810331931553019458501383100114869364076532081806488770780668116329532524145206613600028525615510853916093014187099391851106628437637167438093407870410465052743678499691091258392513548030823917844114761822678438767663535655731356741329707985731069932917465360072833329454048573385617435955329991033464445289568185876352367302283841801720825748669664510422416135142114742785848663864004813950366184873277815010290644007776625957378260493809419238196114222822133562755332083936388497722511514857741247292949400080252003766643347868512766028815930097074172634931258911466803100738023052584146242330968418463643060718154159006919605993903898542069287593869824021572722931842727038410920974463329601826540674977209308024145994763194574223722313984288448884535108926586507910940834006770655942871573703640257119945796103606588335024983135493797747682048946581529297258776247853390168706600579763046762193626806985790686253779894498487671482710054667223360701031151680439055463140307445927683216769186101272411677130888871502349051789538818416038442636865707278783296839256500272518781725524247859365485883386490916376978139743287302108852614344383208051055350343777341208112432584830986773495162920179560414269447843453972547835392648958892716719748999174787358170040634405102271066698045059086421332813268607294639093266697146450901952823304380977711904960330385764827884869885500738135785973348555114410003696743374176504063682311702857817266046262944881404677044205545957579564640869223225608458892373695428731968503501092873950740818199115765522767184510473261010175518218305440441595168924082853635846174168533636800689033190433609294772915453381456962906740975707375535884921204774682759403735576901804710624177128078676391205059368247548222912349033974091129081581275492924383292630873344141066996609858444683231478699822093175333081263629411519807957465696706319640290007945328528553137658508528033869287635403057867311309866892430903151310883555441334393463738186795986404639781143752188723328125139310799308375547466290033464536184170338598431479433480129593966351928080674879531327158397949830418011191060111063178479683219787911251424580571130192019425263272995090748297613755270762769120634670175600702449156380391257676696861340890552384703328863507188717936531115023141528327669387762059514255134122305201803464408200215537545822781870926894500535921269195456434557904873753755308205056177023627063548146493940121998893893062886192586644357287797247186799205605187293017112759114082325181911902203778388617955219598722064272322985340265318231556557301355542182582168031884717083833844114510774699491125098944492003020707238223071303688079991963630712970677464976080180627025408182894239049998975329833043267917859131294107490748652830718569295249359831590847236404989030391141405667992644439191571819700550594809556911437398483260802101617796360257317886002893878866746160770755715608923932870265506933463117894755289312970432762818084409728767477733122804355823084912804926007735159010194165422297109896450297833695235267223796977210274053629107702538492445863889710279596220506976504118129472535523522535351864779405391894466159899710980544183606912115932567898067728044141308670021137444106858721205465044958220371823688034150014238906473624597861745729945485903096248311240553596276677620447980922592852018954949580859883375616243481322745062274556163929142537567840059515293808772287022700665255663352209634776806542179219132058559254166003680744878703073786338134769456928021275985168787117256697726843522802390545213824182057227173766375043772191120641119347897979145660565568354347087958815061768633171758786163012326315601975066291662576689734936729748630715914225323311977071995253710485061369815303417868635454924367371028003862782755468184034327750395861633786003039383833747605441783142134092489717903246128380880462014997203839000527066060054002855352446814910056300580797024104444473654374014647048658102460461197625974782269794559821489517096857914562943122145120962704608784147758042005776574620053237334735440739638444076860047316066675880686433050359524898230010238739455944573142404762464735603265738091383688163107602660997904079209139335991368698052236076685910885909776721447049951076470174717300089620504868467654505897788106715086796671391287491124954093262368114843750320356875544647379937628155193118984971548280590465281575527938282353347454835755898939626414031205764796065916081354968538665992023860683640480651521277263438164582931162975254939649572072495962560106018928348135384362320422150784317773102679604241130960118781356866077881434328765117725929720954855840971887374457765252669745160864697296358239247022496300334137191440592334996054025596891559507395995334178392137080667948894869131748897700149097790446094897573079079161029529563909637608196530884041649741510914044781168559642162983240393239685173616247382420763852029419401756008307209988186047625196305520466516182711986564155453305476715977322598210341625709320472799693703823773096967463483828579984392427874100060652107379392813133879174424285005352377982001310264548028789197772176623317777732432138174063152974883542749002179606432395863644505608465909376660521040446188707120988820371841253673182560034609908882693931648921043290188512422769108075933387303134405214072208001395677253744902589083294717273667881789911013314889926551638295108998170252770957661429050540764240579682262589071581334552608383659079802062421951226969558008449984896460319521188770093949940069861732665381389424338801283705312751490603297491111964351035166746272497323375650403615494089416626263794874765213943451704995434612548237652605770350642240055369949475337295959577639385395492943141014787047621467493064894418376580630541115746756582485123321395928843217241206856231421262324283400134826929648842395996457634390461920446760287031756172680102253297947624149521423171510665282395900652956318025749552177693789901379446681313519331188513434031810697421983990039112389505308679257050062742391190832931542128320798683796675996831676020842336894998014832937556142896184620343995227008812105587657906785303368428183881266315109055407056247478707377931845914156189576151446905036541051626806378208765603750751311715377160191911627950365362913395031634769617752288898832026807606734275475941041941311033362596559345087763601014786766604158417870021989667279053637123877574670213048464582422595989119157311288119271339317121664967818534965609885329168641050946456966242396107600603659782472924851811258780461156653817779727294654671998750171051946614789832903967732817535942585110872391890146874058899536537489517862211378478246667410135720144915419277117472251462305800820859557304609844544826531235969815506549474659999511790502103673698382283219047008202871704903489465332286562876818169737865207611509874455731550298244155108874738915721822293740244953411462642760873080700440091961734018455965699319529001701471208141991806412288294973633522763113936768260442405883535472875198014295317457322088905497833905792687459839034917726149776478065622972460470101836054804298496536543551146121325776980128150929833432629117428980941908250266394167540449107190688838800557439064179841591426676977348251236788964309261880198966739544098984552653955016524916728554897092467559686087129030749788905599769727582020831494353019426016512062108197697258407591557432191840370702844507766868725222285194575961985481363420871022698776042353827883840656198967876598699963160551940303657155892269556996943197987723292929439817303133967406232436916977200240225306244746195089526841734022512094238632279778928485024350116782727676857775676770903795812751254255998226489719659957550260272080328313404141214774733981704273332069638044123758101870613153619257668575964850239187503494294785520438194775723571938156964973285713550094030922816643441904390714851206437959381456554366295679319618668279899953646349077416251318676927636391406946964543982780706286480321021422398676835955947419891258103711420798219485714016037658213433352311610026604597195781972297361843125876984050250314524422190975586803815068283584468013204824597848177845026721205898363967991632801044774305026336096962818001178022129920325898509688847798108273631685795550566373267086261864923419351278329364854440207070460990052022667855821226198731226179074428980063533553061437971318872608514252083897710120694446073344143114062262391769667611983052093416680203542009620141887893019887735743013862241111210327386215071096909597837048846689649520514879606494335416899540263383651493033075408136630902117018849312352947671628453171304633807632443372539211127307453973532827625677203272799748008822220595100466442682697016219327790572631826931430921907984987194421175096017686197386125488117460026222872614975690723516279958921158696109699411795776027323623070647341321910274369687123261604391326068374129095174607549678527611517249824219407598630715309590145573883707804480694795130042167083866029649731713857349270979451798862187170687027614226186690575980136716157944165391285688422649237559151917010184864080549423310964558753774666244604978156745655123041255675655932460547976654412070319215428666861150204414207253276871844000036931119213840643248762112264042356672366714433142658287217985034653696063584464868330330292540160482651273804364596546542866976607175229633169994781990236415959174023105213597837178636782543443469482623168587189004253856350658998617053596120518053871726326828999728535579903792444738001109780146128530965413986416468359920222924785701559221387884413357931962565181363099680246121045232576038553675113721662507338208124618940397545193883347500612550860253819470383706623963744544057960222096886431813602013268628737169640855286554085357755100480143592355962506297207392034538703778625272827727217420799572627429158726842021917217753792339257947510753329743748098779580605136878751287444153267777317379276383025347746974079635642675044053636421851610133970141450379500425261732108692606444349568854899159135310613060164985505457130856628511042577551012066373594067912628887523771998664006337402612514600260958132760262083020583285344780019351725709000034875704976373144525658438228032037697977794186684472037463042233477263383947960323876128556678589045283915428442358227129506128092958900771058717045481068318352854773813615412258380391270434310391562839827977625772011439095729642784459253724297483672379101572592734740098710432582048551103246908039610954494085469193858790920098680249089060710364667243365541586421671868819177226200662493252633538535800902732162483223912362944828342896263222187615580252214455499987388135240697743843906224545868744867589281043439391577200747299944852580119595094194163304997652488180547314958177681234192663086384887686433661010314663065362947152484079277734177346403039346026529327515674570069737976222267980376694618163529424956481967628179075902622500840298285352574392188430549121163084051650776449940313570495949161443361736803819377033332820008988569534830199323695789557554295022420031059996856009475553133277976325777646854742392272672274553779844469722539814578070490498904608919765122197255935331809699313435485505219347289411575694584138645458258436672072850711069851339075787396138795582431889288664505147059790492894366480395369170779161740303812352069573613945333354445687239962898670251740529072798921458203457874568614021126071518487266730584967277423939929643223595843301068001678066831669687405095752914012339232332183486617773039113423542946157785757198479445620295362122126353409128355872685129253054104831753398520798716554100633400493194566472271483021965396807058171510689323295223193489378093037672143609062485242066483384126727925105962796322939683232142151047733411877768420931541305645749019311423283169650901506391690662670417291006273268438243445281883135734623154615314848928705774677228342191662742482464809054243443461870241651820840752349255633461646754051212919839270437847762853551850276983025145685283680462813424775903689092084931428329696676095771415413580264075312086108100579628273973429567895993783961431448598071943153635665867862301265714504278895426068499173956302492210714342891274959658811764589862122570947377825188030258126260263917715499993528802900148441511963189143711062248830731477771168914034263285322115556630961884026890261584674373829134604707586524548509448362070767293063252564964339254876448154974467921787412813995149813296616584581745907470334943290788669413757270135052550881169363821728740708600263676071710581286054757639233910997876401745735385726021891058015944616064399869786277194031014267686995223322901866622485170460374084394443742277041890884507687604962504765883980545226942737265156474115986462421676540235370184862158478540000863220420173532144530420095776966413782516664298634720710398942341754246461148614177704674661243608379376838025735962421442706292496827051969712346811338576698761491427780414568416014963491939651361006065514313395165632046213100834724984741150568391823643670093135662945331533308681380347079795063119055608949752361997763618096689830847955864496137780205762647192370163440233879291278976057978008462919997273247360907972038027108630784339766884708092067249712064915847136110768965195124796983156298581456603516687166385552919442011111899862083879511989224620532161929270018872799520678057097063884527549170365638189795316003718230414727372351304802523121928530997518191443729872323681836509123920832754391998472945446013777453567832416081333233084516911690270990002531718071952369950866236063159927927156038600497512745074481086654732262026637178335470996242095412696870861964669849514994651442582791258473748730927053055089025708843785955933361651251429891064473220718904108714869313624418564415330224299762650693695317452413081812744047764440762377466166007814063644552695220350825742072642184733601981144240947742138874576703910920340859315383942822801655718917658010285472427844961464317673980152302800596116719537081252987524875823382733388116599846622806369797054807283406260124948180753941945089230784310646392532151787949054838697987647889444425961700182372038330877410109545217692555464797525179269142315024695896875888909528081988456753923353604238210816788145000285153633289516908125614557580887061416985387989521143622464344914976902710230326762957668579538503781007033984009976787049808201759574417606778622017122587969041699227564834891866890046689468138764038898639571091236211147648081500805957813925768656004355112606406595320794349758427147265336274988038536715646846215862765834609951225872434147955784609779012403048747591668214793860548218862322392711879436291167634669773492420768621248759821013486063182306850237199461952768688354622542129322658888522981008453960621713697864696883177173813991613540255363810062151410017240784604263458785948008505402510906817150721340451891144459544481970066167081964020141970684081783304244723975590725543146832998926475959361057740127489634244459841911104357409088811546623947788094409091882880877977427762194797958100103102452357007771840320053979269995558911474692468329918272423095614102613519292111763252019976706318887450117276740209234201302421904848793283218326808561499810042498378566461278031088199208600160046090370006587063248451755825548027046988262717970759559758317896453207603817153458056709213412997001768503393914435114325277305131271382080272547726842064019153380080501849284287249428972185139126184709248597106588242977489993003522589556446918158429465936971129363641522280615653516182143077302648955692752424760392899708687473258065887617729912788352415328051809203933769275402989473693806693832347188417126659234869661148483560569193235326510103889814968626255768178938661400409349302704529068865540247929741741473683678313184549011364981945273158154880654997548088477197071180972844009410159166150069011327976143150946741252945114848703254418860661277338622882753765605501511429586933129252298124706841985687298030208580316714398647223464894047062760733808936624261972670587103864617100625657774919196952213523739066552148190973062466449010788316265268782264305847228435278928889959078141051365439343684440384590480849862446729631606047882279800759003782961259891480434502427178917181721133911325056674685095220729204203634241467140926646993719123269428618588176297884556776063862841246962252534618880886299684232808572097721205598281163226366393173793382907811136973284767927578331251653406568860248949292961261720677880855898219969582045313281494292664146811252554955580080506763467399215348773157496136857737682742877226341699796786410449157161299081608506530228965886921912436720878178396002423869277192738858737133914886796492130012725189741401761234136955128955270618513514615091911047812909382705256692672246222825477203778996045849626552700724183843089045824678756784583850136699845098289906288493331806500637640499211433925874031444766808809021945221977627886752199872321379100128473276463125342880212736250119315513695199975002126692680165851754977580542290318192674763012841179890095216468438662128602225615725880275312273529667261915386655356722649939526508971993081008111074763282130398492286070652818059540607609904272430257228088342823053573465071849968897854714905681052866923305097957666938211542655415399986298433006013314887287518733092956481612124326026048325490380681586842301837258351705733996908196227724138742487309855064667756472916417043887593932906379273634714499358105553612628694995356348060806604713118816733763399631110220530607079416659565459865305767710443613609180470818823330644722737387035214468541459236821876193253465740836635404342190475429950177756503934335148755256427873156443757765959357337320453035015983848993671649440374904327980333948920324701662035877681678688775200319676815798881754488663578762972967764863803891031061143079516440739328543008779227625460591307744466045298722762767146702269934421715923752131831709426792233853415306983244346774977039323408815332399211337551099227779422820692920269384397202366742551336992621168590115752350138102686243639008362191406036002188485150281976606354764067752839004032857684051351066068652136952760866181149764510060017612348117313129090619204408713257971071741720197014405773188882277745883493598408608525787971606704432389075555541910960545506614099023786921706959251912312356706197040899347558606929369059164771542638073004019179953626138633818870448400509110389948571052200907320537354670071724471399309097999187968388862169112022463942123355280818298491088658566427838094635326637112450241784417901786994054480602560243372747831356681521746278526468488660713503257754406242816360476669491917630163997112466563668533774117756428700500105672916431602151944678683998067100152426948403822057044429503668075993866418481851996412900063555412506958777466243201839483790386367087040879248184597311584827533950311585623145310451179244398443518453602238178983796577954176298787884890104512407073900632230004309855999276103022758297686358485633700200427392675452405789215518477316585024969381020309954918152875803180335694787198000761177562000196455199438514758878961606805874759075323085010793023567553596090116498021789502655663527421820549118417902402628272178460219097142548254096883120300583636502466591813727923474631983801982182567746538003220461469449275669688947697547763116603069381613631020747340564490984317424055657173870084608853113316918920154249539787857273737059198869139800166746603355749968418457762039754934879926517676569475958731418998213578279865242520392930815766413181301545668786322012074135646057558122060407183438924031025135575256859856409209393982569393672034954671068323045642900450584068221959551143100347106956588868447777204778225308606296141520711150635890832181875081961515936298312457327290077396023518557508247889033700833231333601442419346086874383053115372650538793770989756622172801194376688796284749272603544101580877902099381189295811251996645081257825244797135927111299950473461815638142671545219119854155554486742313959417196935654759724645964917938370558474456065480240356344286283119592293310555962175195948351317122539129287696700553351946373987626442009198717888412552842497175680520681217794491715289322741287259727141346252434739522897145416634663539873022546861068658159033230196233561746785324847289103169107924151649260861641986919192265027659574600544173375120752917208689254541694164782886289441534700197729119650784188654284668666623404638221759418696837998544579919491149515132143891879869292649946244556031499000518402755407612774457591109982619664059245397005668945156641461249331712230507377935485467257977121505612763424473202859793168532226471079067526076681658132996173553619894798054755596298813308378106024022522737584900508706815164029553885627577196719021792792490939486411201841445110120045427600427784102204127486275956034500657571527552881722590378302209315454687560757105147386697231087587187215502927022116428770192286157378261310096572347503082752659593777452582515726554226759646325177832537705800890324092266845770510914075420162520353856086749362600133409131668696290289857804785661929775110014856370569329500158102650178197127678517964364073223107712246188691596734285240867036431476530289527636059162067965613228395448304871719916337415136506886248858349209622539651878638049723766058149787926428366436400149811430941720921770841892570748755812145330401003949673942133889285965589670660015938804531550505135988425852659155252976346062370685472266719810536359646410862277267360444024362119033906376263278224369862698904825568265562913370581337291047850103982903161057258003184588084529220985460549466283110917076725897374328113144186215931052328676454568724737116934884718478883027861495043196675984282044160952252816878547398404591218366681000821282972451375698543819374875919538033239636808859282987065143080514163498601288802926499081002793707930466003944951659818444268781386096028861934563217525462856384801014532504017704787706145050087277478387499761276173050435630922634075189626348411192813968276577181940433892584595313583450129679068495022104050526849291227255862960447657680151648335225382025851996193751479814664283416899347942080176272015538155319781311136739058150451717123551320358510243420169185733154044309936299685013702846492792746986497240451789951410956599591543831658890604954275806857230241175520280351581048994371224403741093984073451535693411113341409642607480883656147290417077344188570209922814325028539130520783307020744100678557535105501031968257033468392212124489465265163183623574643135742093737111728421788046597443760693198052191393946122979769495700872395211402187852278714848895664654880000222853494645156104442828511548859625165057874958224157872107336623773006633053647756242007647905375069780441639410651581857318384260145977433457821008616595391063841014775799676605156412157296796869623536606206304122197723182930197458060494584225116840645672874796528671206656187754980374834713506196820751254629705989301760982446800725405402816334325156781963088215283104469484496953316757473797153878072000531629270900592081211214026167832782264038629300241306316355677234675491000258606964732641472974546943300322365784451756825444029620053764693326088618004345145505383899540359771181726872865416895802946467482181366670405984241247647206488745280096327242503047832165185755572720884517452589106787246045961024557289454945314900629905649014326165817495646509981035766282523900761366280527328585492005566138342200955149694978245889769260561910237889365332062793343561380489149659020479359645401116813623313337996369071902396388763414515498465908716580847700256870455272215263073750299371568280336465777844868716259071004960838657430547454981996476761313414473026171739868003604904109645651170059690949129201081457351306877383706595123821317975730177904555370254512660027142922657299690733161685326523374509980700091411684543119135538377253706058235717390296751403718346971222859896021076167489541997370311680971882662453939036781880794727009183035386151636233428873105212669623597159582865470762515139747158619525405487891845494189055595293274372232254274130654572658492058578313104591113964654216584628813392175518578677776043599197509177580555282265956314940506872877115762082342120475468254717866517917297257738327092761499595213772674746103805335539272662074055779906229652411781239222991672314963872504808135285707386905262676692046969439969251719680832740595250201548805007576819971548036752226136066568205629832599989378668387336211054771212185657569003916604251582421134510168453938262088742999947030809183908200013453652086733389356415468232976598886182816163817177281537193249547692806240978540342054905478498071657099212249339133350812257946698323324704742629534020572199687561959081584084132951974430532000993040541038674696568227314788824453008795332748164936129928021202866723267875968182723384446933510703439019943304387185323334127215168224597813681269269581744748818706363010048594428237408872489469225741720349562220376402067995144511847812423222018547385997976319298870521878228623160163128479491968928673303048870601558034997306502595213543330470209825349467659847598395945857171212259398814131524831426049964486091067445042413638917150554032113574539008198542871651326967955377237654787944481377956520726853903076378393116614852522008107363894655084074372438053706244272891535426893202684726386965548009376139196730953855829809274336053402540104059497057971914277725548859785529522772804312436991336310295392414491451094644869970878647512382477818860906723095615484309352948810491809384683751265335038499492365452643002478548431176791385868237591645944805930795455946433203581532010267177186904339738787989406471430011140364953960750441221893414264245484707064211183686318470808086242635536932794319890293779460122591525350861730792311993758966263408054218231363133645859946011616560392594968414591513640246532333809806097974929374982135394895444749592300568886117599843672266594685949772042721757645138179155240983187480518910228838968955545720631794659093208349286230311870061628733574517004742251297330932558389257175287123587400426011638434554090933299078478789823328667922385549479732423380591903910486010662853263125450058223387646163561843286825484515292872819948823730307403042232676947555647989562021153600049835900338957481213445413690682992037127759595877975371269788700298560600520823569892812429925553994941991643370370318431539022423552902901925730605263514478443396779320872265058813226851147057553301230713956861063490216777269082088196340789349878105792968468928382247744334259382999644739828715196088907621603135581116143657983972159976053794484505503450006372415218482676408664640394618280084973497246128985697161141740624790933928510302382728034760597670676779862502373357447879039272419181617382914270427600165954710416298837600828030495779742803320215492646106020889960290702678116927108158266585342261696947145529016992965124166775918954460565269500253648153870188830005527024699625843790836235883574000094256383503595441202385626505124811358185785925839435981290633600626487661932717518517922268842933306028359530188171934270209694211496588480612716674720584610848945012173591272369041880411333632664483332565580575014443212745969731529396573863378800349901741854754070433369923734114809867939473648516986755121736735507162431847960996686683267183431624212514809153075532271062784504526220660914109952773118907443405315250411441627213623061946347475987067191418302938938425558543109726568340318050394128979238902063855640111711839194377138278812966650345481669919507796506507629251311109750056690072870649373860077984543645013876563001011995584534766187135271460127736306002709585641375333718449423880264867030106403081768318488778350753165111071858542438008287640223471969882254865936852462170646516811305993435994486560662692280305998308102220457992811591525086269021499929516842549423317458947097215098748054631786265327936709609278042616926404642914090394216306722226134875135268530351894233592453426561012746450706293561502724186091588784356841199717080262693085618936150136775239001999957726519841290231370461249130477650614769486012042585061060434641904266572786096240999819804311421399858803046149472370315332383310566796819860615899716524129658768745616624433329696902589825926229675385463021538956622584524786275709325924965268052075772267872699877737650935325426748477033620345971497525581276691193683328260286153930780008588152321278706911697110647936723890351990801267609583678824177944508905635591069444135766684182174205240779105178372910034471922555106713183431534093103220534497478607872659041688097158565402284926426287342405412202795637913446385318500332319757023289897591674804757271105017758669046864191153289217325399684524086793632156922506858621863238907375181842550732179466103825057705569536767470125386052896993481748240981989232513447679348498979158472237155135928870623735260254983377436843558422762648302684419304818721257962792683482596776967986215867190727430596979715463712835691680461415243587634830779819589505604477248847479499061075771434283614047191155791400733699379184127225188712222988838947424116350526357779326940974276909487885434078692364543448294265033519779036972693311574069846178694512595120969769918472677661954121184606017882603032526661193511073488853483650452923142589959051352855036861897968644995632636612440028142947693715865187923195565987496188307385253978378213466918152998844759636300914036267151999667590985627757036798870895847404924177448978791046079043920076331751895350617522043848974561015923733348861458002875410892499823567788141638555381394011883153976108010611185864723416365597656944577456595900377716580412752428288822642319251090584003355121886768801490140477045387377171392272997036802716294263696733079496184477236506598562914763953329319131519168194744130418269532469765547390938928417548724652723031401937378394606737027927619344485537584426680993254707169933737414834347514143992291302715657967412331674011080697955208654661037361999416303348848257343796448027554955001551483609469918318758192030943687480182366815302170470898254780473653884065975362088532464061770888540311637474176643667760005552421068938077965499961000775893169156077341777222994566709307355650741498740571172906901243805970080491194657768874643240534772152645815446928053603091458269803164323591385238884864303009242399803352595659027699108469891790431481017917825983116365071114383631743113250443078074892370031708521496359831058195363176877911362419936804119868727663349028682206177305854085434431409324567551829338724099514424597089949850536188680615983386950091155212658754783409214092510967407008736607618728578018289188903487688032278512120002025097333959591117783945379568774660484835905015051651588974812499490748597138288789323803747978449512439026805619916424560104670100164825463413597984897724196473828816067282578190607556590439714380096413277773985226207931680285139374084582862301581189991269508944173762930061289036119164868193254539999818077932723715031311700984732633943540211660032180862856399147303035223300493105767292254728568793258425105459084656882270933316384543987621675169479288094212525203902262195284703839327703259385819416176077222017413166048766700361507814149224162547722648653248350763688232095554018463889978963491848674344632846858650211176897236065013894305721413874400118069468306062108429186736771627651634245257762412441405562242195392767396102232761627457775359469752382098939713358604239043354181043535529046033927968794129973820717641676202837746222842121927298585179095056337834658593137416290388762741841383106598344861525543084743004316439233175434954073270123274445753085349281490862188957633197529074756035456850995833398628529464198100488349988219898335763034970441486819347350822877774988327254291144204568862850842139602868537495807567989233638590891071276675600273475397075805244933944088269652211674121336060494648555747983059571893279081637934544014443612929463633291428513435576468735377170470832683448125032094845137474261681457567721009995224130772980817786617570670234734620698597462603407875704699787307477005547943993144071875686234802567189689120219621975272068627968585831609712567724084207922679247952153104147166190122341785371020770763039971337841935330259321267331283343349507932657957515045749951024331465537301897521592552749932463518670237564085186002644035339388902827491034938492834729776141597420609248052194793153215064185784908352829803327421611840256216648897559645728996369418756186784508800059232209684896337300708652149947277206695964664830710743578376073265293220873149928138443220910241765655674094103231019415877229920856500100290981116348494059178894277444597990014005432377262485643936140400297283557484644701209995121809673264038737320630715853082305268849837913825886812012400010442289775829634757362772429438706932739293037903712660078202889928321534219322944618189649697820393723771048048430021457152460076794872077335720859378718020565633283437525131867464148933266518142270008549488446954933656685599816848111581114953722947360575295929659993295219523767410989095506495533307314885125604452952128391999360217524378185963012110310200601163647965705817546012227617650484833917732292892810836034928606842818388711926417085174439381846585098568501351616307242265322928118086828804926454548951577054301253165440912016353937165955497141588797096238539267882635022994979092744652696680333482567371346522157970621944530283458282645963016507329163055147537637461733972976931091894001781445154096804644305800531790696032007062568339086097857656787408913645272744779685028710912436183358247655170513131836880262088084581936533252681895765391942911431375169612235549733427714867588248045887915991634378764103699574922747672680404495486655762071994046367277724296454275128469711910340555292314432125126592652506344667081443358691191788775282783246768608501698677634331534050995418336146997403173196540572531536418890333478646548990800550110121074972849780614399940222037148558832534730173300048270640590686223204795066985454465926587778861837208648357365859321773815398008555566498768559779271341717366299170907943125478967399489644297773504601057082927061138843117124790501762209545084502050175292927917783808507388829185061416713068903525975487435930864095549336576522396193657046660905644693549923660803992054830114666479598123973970465203739155833750892047083601020125858910031872315192541770865253471913307908107414517016659828358207172657772623548603618893137533024249841431205212031862585103043259861651444667954904183326615818459396753923263451769596654110238193816458041097914006619726208856548898364242641043052593653563628792114320729650680106609600671792360479799261158036339355312949843352934549357918342636411226212709507652209852329924218317661828151702419520344412780748232282438540240308620328904915024263645919661793750909054813915111642665803709350683066492399714982683363042995110235955289818688862748795783026462962140930790186906674998251077484918366678279739084271897441688616192139573060864898268303611719583811358991612074154582803239919696815801084339898671723690500639820473411469151600813640552504919165737961161008147207957979930912138677339148298923623019133358204092521606345258888806484627049012918619620287599061718009952343172211366245275783848418184438574518104607677307881219956838403353738329319046174254370994556658132435775831096839072442477143796006198257102997496915653758414590604108673234214696121772079813523328247947957710629349359881890646663696019963080945271968850070396968200617935206871352699944998854073909814583522954986461594734746496568264611916227892175459313643843756390348945612331424480997941253970867859371760935908315091817515507883991538508023808137017615119354504936683264336589779749074213330664977644524134235201697945236546524026224761962892990811081096049922432420953920019460791076597067438213838994895149288096367306192762689404931871669615086063125403156101851082498393124873408761264805315130222181591313373837046378031460653321270864004979472750735943541447516736587142147883114936891085385770452471559834584152073060244284885164983663105795496062726424430408494081299865933011744648860235686506812909648163028137883040349545643482003932545557795536661010237948467147984298478350946307158506588966282839543144349311982537449357164550379081464396677835976232761733063576113783697438589526993638440446993698724488886063163867254978261316247753213175448823355245728506356486592936823556073969380583068989255192062547775385199349145003326840861586500544668798206783790429048189988456084610051949271594989064227093203989744619963448166075267459963560901855529435717322910479622611497038976707827524050352310641185902090028668576916254198165876408174008779513976553710601392525374437529336911149070880786732905497444104259520671686734287599633902884347535781173902544693806340793154887972339426181308496511319951315210750440389680023400650843548425699318430642701718910277729654696361811438813398843318112930451285396610063425680755494656685354631256353841855124198262363744570956097330581638575339094697817244354425389807747896045270227171364106864137321713932194163200224174015373054257051698902414991488721691927214129528422516392996403795173619123358717871033995979002129155231954079861331460815987111015249975861709917254941129024707090345905153234563528143773307479755948463721772522646739413313383652322962155906114964912444672954007446743929140427910502445358048080517494878975840568203750876054960195498356716961765211426806381056466787192803790313208954315378987117433699258858667991274917088255610186579312918790714208748654998937665019550458659470564438501681291194402601877177969013269496524223696811013598766199834714363780902972850565796796023208487378600017846659207958173872919890099204289275394866235705867944781275278076531165877835498257139476717510232670177261244109914342046106447355582923174287299055604962131863312042635041651981514129015247065146667318898445854858851980282065403693718031597070974289222120875410607992185261064806287945634133035628098200753389580731638178950529064383136133501235803257745623710967165231355001468539377937602672569435501376168672282730134906962356997433469597126400324347684638096110309073305035797888817356331363844471014164790323978904465210850800938912092786765756677466810704687298740532040197275082584795663233182981842980873643948685410965219244929426039977329174552448672988462635490875415715762113259374728042769190251421234165892113773493406633697446510762491757968317321585251134736067116894823271020232606284383054307301210427231212286259971438219395353047506129153837669925842474467907755761572868704484196979320785834589315170755777662667678238820031012572247508236717315762208689215122429926304132574430765665583021139903503544714212540730657935681438644488171209737283601098978759027585856833944533570983364379882034976280797656104133617539063135450033991220666008624861113688496518293977470399780285649877785540777299055520716494600203501751775335321235363237082166556779799219935613239892116701850006976529349764894567278937353339913619462917355710279968438557989876181960515973379228166990335850437486784159723075080699235549184727201845361743006597912409737891565039852041302841365835983475519058078532746744687256217478991197420727953927990870558193532450726268156084938356374690915132203892771553534962637094574633375849245478249581357735897451034348297609643759645414211713162288637105444246610100380511190586352758365326038319597570993162240607878196137266025505046891467220822561046225414923050676602955313670564675717935998860222116089572919083711413358395205946828254808585238573898598641317903275101828816610308230587188290212332532859162596640986477592033063861884824920153538855357948189645657046579854201304852368608817052661980689275474028430164025195411560012885325071302946490792931844396280902792284908094867182884360779191795209670953760657996644026625288554625509669402255804032183791733457429569329290238906925248127403048016322676901075835214320212456794304749122271093865866636508408016252623270548817586324928543454131099298668787623920237085093823738477737846957405953160475952474865116096045950689261539946017570159984355286773632188003123704440398606679352019590396203080008017797165086762000889169224620319631035040641478165262569958058938872819410569932582043018468656584478294926207869971565998127805697107273100514029004037454574560730060579865993608112052841696810795284068903705305322847131436511168083832402377260305468013394552811048986839463856730801292513277076364871435751464590547003746649052436329807633390664440809135688617374561025147287193923006423824132516926528321968964529975905446265874737907425411155317992442235619107726131272504433924934389418258386374781219052499253490267611915165506148215707419105752030172630077191839730346176333750144487260674315863114361049505757382883258368352338233305030713519471782995649994665196019742862048849361920477969073412290382922677605211112078121109544725284741805438488213861453044519467185507687012694149897626785714744280568110588062495746607319614980467875108650179223844195577719766646448166819343305745244669463025934700693907491834656072709969252825627391661128687805952504719041142821232552807689900686033362348925696624249451506732231001084701008161326927913989458221451368454601038893344038820581063061726827140152118311348380518945375908910107845717216852328443409114758402092490316770019614825030316830921107830708323209629258164719786268645184130455632273591644532206875435131532602620192286895915174696088195047437614213596477189305122174111018772448155123294424503825076832132890203094724573488897830879097710252130788937607320304588170736567867860279008007198483062133074491866658149468540949405018943972664114963457121454697428418265206414730769635346802671996826354490443296785447119030080817631650415263113021618573327230546518536951343929014345870224826321858831835067084357167272087713255803842799285470447917862882594790360871262592711832783752583077546478529481813965190287163193913904694728435997512632443395842541260927835947988857924669768400601482273185717922268847900252964533618885038743724254414668321164838610998121589364256261306461940106601962559983325034409045133980613918869037480653696258797831874542717710694045876768504083981414824679388786067868844183984057364987566775237433028987308577048946354139994143383175947857313629843053464394489603111557952885727742388514038435453490779306011318883128695086530107632065692191374944314766329240201686139056387672930368205315179225479342265459335911364467736606441930853921369636372704285700286720011522686277622814834754436712145322886526274613000779185312952520012622894571865818089046196933751177026960320263440334432268583586350493814014203382593421864074645235141970747242325048159914156436763858567099549496956593396720366020349144128382858103388009159700841712515738138728471536196286709192789277164443938020632008998338848487721073221115835737012019070256992454174277767736637075255455845424602411395100061638964476755349848833283302834923722372368667312878560052022100385537913145906312044634650947529786914112348927753196531845472739166344057840833763662051051017402451466233414079701001646940711355817947256890168999756260449591697195833317633352232712268725962097321994569259917079167357863299404546023437518823882184989727107032524283835288778932005380833791177828843052028457683069010964442940620475372829739289648080736818324221288353498354758198762767731544286620757225081612709388095362318642751665443575670791571528381939469390666493517975813869106472969777235297266788873983668022341368206920646620234691400846655013331285278619956273517041868013261685769846647494914357990657274123025451861096549717290826111561061617205546679335173380127443757357547729046769040259452264177090691034668355666239088407003783082973915596056336255652334507802625456218472041046192933127711059533811435311244953095973998338208644695763748075381605134577952088957744422162599402995199943635554819327066263703306003433797270569313564334624694534468482202766617513579582495572126427808922211393842165512540398122636295687384087244276561376346320137505154342360722840638811514920650993993673265684253896783919851989187287837912005943409982136020727644592023273317466905448898228364834092037254486067760404284416463437621049784819817536370723404940021759281460870131688173479734637367201325283077407775638623362488181450742938320782347563917351060600630435068499207348442010568188103413330345945572635640804566971023422204588725553635010245978367064219411512759402904214807486098287862330944038501427492250199264182947199663933392488143021083848425672400254543489394508095263169733108831156601325053921029866588038714047085071963448919779413371831868109653095623529181752387408591913649624393486582771040292037217036129457112462219699326378589446315140883047127361502135780260672970400738136722980805184564759069907658917077005973498362735536251231843430069776807431612583590286729805416970647572427604275008809898401413140631946830983616260795023744471026782059043788373063129826227657124787588273687952916857456473051691104359761061856696045547709037592444744159602198806351350123560178752424885338934260241887311514840562768020766092230898319407137623021215489773011343684300251764578960906553708635258085857030435228580731395326709972106890889854841331546938910867507799010719975316923398241961794161293090584658445178812543232538323688226184715086330928408967192086876603581717294725519135385590417671988547111566223979591433574752112055246511997957489832646511496950228008672597183108672087844623594421830822828656849499665011484178729345045272595102083476216770344428567939561093381108900599671087119257842583895884391905542327344764277150271865124425287288711678363815838193838715540308058005114547940701409363025392421524653821422831592541204475120762131746473019764073153935300242751462571571336062881181130836386342921705363240989566020242513006555775537252017043662398758614064449280069149861099810415352225875924565869016296103936826032708210863495612776991637016368489392392335329121106729979391369355855876583839179121992778494192710971575653429707917055408669586469549447910330380089381418451817532045187746730982473601427404457330313900108082040922453099912682907395104594945333066689027038634667659103754350642916410393250041898811734822181409752063742894152774839599732288821392485255347585052283017228412975570279589699821843050767126356719134194786765933223126244147021306637134789025733420585172311128609824509186982581298116170761194559211773219701323094754145736771263978755060511743306567538533535247478321532145294116746109440012686638298219133967174331252391132354462312208451668608616838667905021566111913343063878813524731477651008470555011382059987157543551217005123772698259955598763690327602153937675340112668370918649366750040465511752175149168219387111019470930478698819408743693655280732985203313782863853588443551746401012440115184747703770295124437208970178301950852670515926185634025635026754016186557718281628108303134773260806532621613611182008378597166352445691659125758573248026326406549898781446620807602225015787597121668013916511371893247014862682310656091490880512320702359629857683801605912895618106052998221139495775888596217029396225559232069512880636286938889963547744208021706672996981740268752628612045593070296690802220252646943149812070862129759008585398555702004611542557950253107960526872319452768388471909936787438839366427251548856688871698545036103783320800119755788638998892026353190740190314614624958871447949487113798693475875511109972176189125134922086890227046422668118684825608653923422239676637903267208084805431472710876598485595271104150552773712497630811754643591667476688998548825124920651877357753329684228642964446076394920218388711430488070049201818032777334316871623059124735027773417182079060931422211551846153835836322564172029779422732282714919680402071797177171840183909140942818257850877007818562640341101673945208037687728743555264008075085012524370797915083944069709174522321361337841971414662524316489722715646475190159814987870645084770155618597114256651381744671370740405818367837799567173626054082991287025276179388957015253712364651858687757081562187901760482602170880289341922256414207364783259908251586148138096614016885013681146816443971819481859895070446889077809737498425308092096083019398915747650075022479174656168229601833167798170102247728550897416845196158581218635466357668593269190756427329175711648650673020969711371511652186801056151425607067288052165653378794372524654890904988748453146923842438022196494673385870982223630641864901908584313393296637373819334538497349869159493462535772341207278435975652456237206792291613460486110675547202690690157135805380670651555737878734631499137471598514628207361736942954775155939869758080188990329968092810274915896273188525260667761543755391949166070221902725730958425865990856962669069855403544515722323159902630122387551815970032445912201524530247037669527556525067016151578748486276259762807602077533155007858016446891580906356627421886088139281616291059714689195471978719241491040814525741440525294340677537812930082486761577109861541535218994845657687320604312762606243564311021176679648333728401595498462204892834317542386082486575023666836453977083911386954803899464400771623441102971949099184389347124176047604363175034835708751416404662914877677219717624941593638213530991526900896005515726417785839991166287059529922642161211215147688538431232724250794537969116830621933472206076135508409217567636323560351141657051297383183022718113565636730430464571603485731181275026737771287693424822337330634842154348726582486141913610308044038875808782359035476562871076465168716517614056358445071168883029877860365584324988072699983343939937686129173637247268171504723771319822445280986405080511780805620949916378789049865586965057337973647912759669756446643390301241044508523198751575877882891631888924184314490667315518667601373148826791963747057779594640735781478903789436567646453697125522819096883086791336568809069027915385263006000222615785754485912280566709731376819312330192458186134677978197137208264715424375776465383561975996275546728963403278308519692773974513178421337502820388728307366078653356557493667269144018302470415102488143150114199271614692200092125307889896297346319165981833817267160253964388344773498445696377891884728279647486963942908817172382512911465178496073400291337847723964114863927977415600628551611779991989998012650230923719862415618384015508005392781508398754028168480439250321299055507305142799007559264469866837285758627036089059112353417669870598997655389702061928230011911824791287641415003192168973514477254467726809965432980901771093054211645747123187211675182469541445316462608518595692714768382261347602183986031054290434756687990177664508266810876400912250036854693247542663482943108840590832104462800300751760280265225303073751855275340555492179665371278501391760312613669983433234743419596648567890580666433194003784104709655318290706262651511812615200334506579152159610996935258084096067042051323633350209099152021195420689890186897094166347229323559469729113608117595187169566984150718100758411172446638055892487681700818417851744672154947151881883441857825121469665757970961948003417702151879422454342452077574683323840974692817558247717878475140924983018642052853607125363595852149585766424070489423742592123971214920547685158075898172522645134001939175665541551720536145390176763059697492995492921780799832953203700358278225189495508177362211625933830593278756142234515065270775861900420688277776620025044328757080608918489649517270756110102592804290291380424630463467744540116030404710977292695413526999070833220176626135293927491439818849475944591733397324118838308903993262422718183459296537944747121126245116724391050805525972859502063068262646935825032356078541098545673344474683812870339726742531727151170086313044360970710499398694454129475889294033476020127206695383903446802324898907100516121211403975120078700281724250642471327756778491788667495559703735982762334999470727173520490361949795611236981573347247283448671326800730742779412351464302459646752145855488170772589591738530264274108722831793279204439582393408518752753465558697216375415218260697823731159625144592175189048932248287348948130563575704962923122999766302007677961055208732631648928273093386908970493627834069001388078518126017615201390966757158838485601803278251253256739225474058763663024001485438990771700474305712307410991850581083404983818747882910070155413895755377142370777237785438983204275010010745901125663240955760551025409049335640811349883143971577516418834564594548849281364219907271161871661222002768493566202403306142829118158939791917384217169978973976666803020284264408314085904531839598834098541042216429764507683107800297887553284541706574288893145752439055175884538733860472020674497406157136289890729186021762053180169012888046641286338844353629254325006669944289675005139976417361324072182141434613086185164579618456241572017156182909208095865859136376252199559876712260187567667958992131992519363289102418731164240326394719664670192178803918800829260907183078955353462642616233820856544769265581640882441862300553227992033210460898457463174828842650753277210926742712820008208839885072350562095250720564596843482735237729193421589185479639016131734570226474047408169781395089275334939339818920806726462327135376036010071238990839470498875290179779895156641385812390053002205370531311021149913623846904222455384414495630095672755517001713487855554313043408772277747586785606011257096532577162093879796769344129849905925741502084934692206353404083860169736292670243197737165352074300200716688864166481649106491994224452865243377766158208109003554147175586705037639915014641919656754390855584280551270697526685980227654561554398316554501304175812467437983869790204049782400027735274126902356346832441525732070720415107932727896690605522465752729910072151957320829927202679170845105878149642198035498970717886435729827222227599450631931245546992934072221064123906780231646996934449324126737141953269605917317840228789874991750654820079210578081773255250945827176687914944719063944903024114830304268561049598540643712456157837425924337093495354203593386759155873654915485284611456549462176999084347314257195983361767252216202772503219319409340042062380236834098738177712548333607561186239432841691639674784547056649359636794541503341572844888218548890842201041381536180758599958460516197904741318061833420548056695375982808670561070892498308898291859604460631812352888155200678290379707913588778109802496020504655640465027888506430100041446055714817534131272835262585291676813817451923603906442214885451094009663511669530511916107117070668836621738615880361743194993409208989959396117688403859837069318168106760258009800501404030308861931174502542091038117980222073837006663678803592984903436142917621470948714121684212413725887751719497432568766047283114240551409235040502890315329537156182014175770278158314229154165146966445392572205876997515786384162537456833221364059623466319653439536864431246892587941473075189158617807372535265296258324870202959194355353062707075935536132569781513110074192008678562306625456973813207379981094954268678437597682707160347675326606820710906968044224857034012386873951715312827843914487453015585837062138329144071592153162321102243131598000927629445085494291599601668527582961348263591186068129259224574778293329796280375255086430883975642362497711169927432596107884633099298289671274023509220429790888065511716199915106533841102059097306582234821015547607608665480821698785906711538133777215036205453091752958576326084944530961902549032242141265568615920554502426343588489245667211748005958541317825198913214473317320387194181502361855348313774562740200120673634497276338214273327846751416500070930049280355580436422246547523840365773422857116053121162960208952715495045379709374202227636863042926015607780192636679720825262220254032794721216010314017551876134724111228968944992795816186552839630638255205773244896188928365185499864519951695473571276964857193590258178264079373746794783242028396316751300642609757770842013564383580611241252015332235263788399153791068113083620165522665399701769214429510701913424550948567736025299034628503040380832057936218786484003730900079742137712006992634693268501301441427747374578619464077672796452682997207627988608671766070788522593509143593454166403237805400628171493994911986791033930931248862678275394574753676312640957979000277010323509578235938694677262552751476966042290708813193751631153101781912777371902090600771742231397696867066344767997665292132286915728956940381700795217244021425119228390468621379766384486206217810280115498951107259072716180825865159615407170800060567409398703925219537423588060236989709584490357918618372563791002915738409562644877506723483180948033770788029328323568103171975953490148192814767849723481843943425131505909731057135102022344575792026561056990855665670031305456819723871996844516873312720619788034587243820049949938565253210190162910699924136156405835523055841522581366226803470098383478179090424016597646151475945338817946513220874098716814839464791039754629544142746754314605847938215488245362903204439212614224485295635671779745019825309937014556420639459156228521630014684246291117540393655623783047912870758194587172223536680459939603619501725855452106306865850643461933393546811579254328896347463636444381444581756934483907524483036237975384748532541890855703981409794511568475906806330913876302099677364554238256146369692320790994011464628220708499961259095065238229547613437842296086386382644179676520978906748632948823214864730875363100125463712337118710620625594582742742721614414822797222820216778118253685186570153654148557120680608121090273172666408107965562657986521564060271893467412258396003115431702032512875540149243867332006545595546482346520395543368255755550147027009564175089944138590170368841826708688951467604319539759850701839803096114029720904373734393515243111165972149081065029189769240471253018129425157361909990419648570649940967013306520155778981680704448393574369770860605158491101261509926056143382366155144597042630708176590592735415236364103229633069735240030764313394061234703125193659511059149647715382056264389086409326498716313580311175304408157101239998661044013366755860987826501355315402122396819178914734985369967297197469935817537687195217050406048668169717914738689410072165140731180414477900334567106788496578692966703805570670881737787798982561260761574134888284341014054317179953193623458309678435021953071931019480755448970425760240948445885615631324935979728416376711169997454174541256228114628799729691365861674861064365108899859734215343323368843225756808341441497753941246211763765532054644151933981048070975541821140496209128344509077628384919589987038548318466554482195270526664480407416911860694529093955915566183092597801309987087322687520401896884384689555218259347013706157339623354953767636168631552821783085619392662392328559069018138160944684829168576451640121932990941302900572272169527143400741913263863268684050771294742423785477677346290578981538965996148832190473738011104616813428567943189627441437572849325501333325806390887554639551444816233247754836641571891396201621420426730420140663399217568698210093125320047662345672594208979465804268253923483704917159526442726967124935593263296151312961605865501703870517237331766987131218068841987132884018458233769910792842099951667064309617731394255661085947337051472449517461761422790048898338521586969078025914664111936444848401361880018788899876041380476850073743311367909636288873568530178841119238614540792476741541569418667127045014211600224003065299622600272592845110198992655192508857363361718480966294221505837305820714852694245205429509601936600100053893030259636550244215586425211543796373982913990370169774362198918142686878882762384557555594615049793110293843976880947228851440822657324092951078537273847284700320666576796080214335085573943861674876679098609833035645642374509744142653074520162442375897674202680372846508369115236865731049726512350319108345031536557548714899425939621953825736795835629215888824949643744379134972869527952573067846324905456018494681017798745252919320727179765305393293598343898211588836843842977541119442282573875954949689708816847126475603826499337366513148957698017568391919790550135283389007603941015849780130761537759120272467673540160605638491684029550850821690422661822487686271202583998154282253356392896285743657761898211068780774124122676313683764188519963581545352092576661819087395886732306794602038759549580405473570077245956884757744130778832824858116093407579859804420026260962523448459698700654988685105338799727669910944604254164332910873338296823529445619917136764911967655806147886369956502240570160210851450674100773160095947708902546629860271376213656612591180943281583229615343236982982345539160435490188652114256767084350795706013273810413236964595053495378503294908462334548752822476158526427967860241058846280978115675853450659756474577534734580673842761091307883736881793122575794654342918828116184641331110669469399428743687126828991910864237283518850983650458768675410614424739875310078971440311075605020332435002429408272521143684557380562134140911210188176790923130495982863362768779864806552400762340266861795553014844614963601558273924083301788394327917780573878517201396336553008490809722275203221635931830536854465297157905313590840713058017220036044500585747701647394153619296707718872035714250097403956476478974915107251400545049793498290234022312182575595961209227063317085221740080979904949525764991927087603976624786898156815607587896059086482209377908999409887683033596603685009706412182225071048546664112966087247695119017745929042517429407117730736163818398097351502153679725567338453384742222992356913757230848633026352696280499988711415266438017484725434428085971289599598591444647349866982865451288737892587212646183381039575047800130626710116972239325674959707542331590262038911429799939506731203353152625382531741463700261240286295112062234547228841432807838554367584756955980581803296992126777351953733899291969417550314887641914466653932370440429899746902745704656228433725674768403777673226209279768313778544850939985828518810777250049271039131159913976845978850063661762195088727209452115908551155235530419951269433226641937793811972965577109389933786309586619404069561630888929875104021432989104287939487646130465403113562580778586529845776307025513242552233105312077056535884709088372660150167167275550062496275721311981085150475783822779222512660400802129454679873532691485975224996040438202348225154717868462589050799634463527691843397013939980544369382570102708208360539661171798713139704434467684808128059973311403845113971054690407675976419630149505728862869029026514461531370179513623169981092928700494033060076588544075842484003473843076085774747409946995249594526025916430869178173774296894044974915071280735651560541666176790213022693034132080036634300012705757366672872655262383708465871541901303835548755420952635908065316259380238892226679380049647430044364496833763601442108876101113252831413047369576181683392076143289247842032518599749773895298736475236418049899509343910487941436966343355586258832421176646805778083891016275507327920581391122258429375829402818136536596788235040645094516778608524114053002629059544273696865472386656839449051900594379353696791293721721793873832816468046055924218756715716073082226675177729388243766267942885071540302594750644232723213258253610715846419054237978755664652521030393372091868588204576188993585345173940371422513458920642263528332010703455345968666157935482586248229611278871180977836663595962071362839331062117987797431380503399394613429500631339261022220691628970296282562637107483128065825621833467744491993994334119630984124398879751059287419991522152529203045474214598942289171965933108323749068579057713956423234184608514155015733922001726971195908331114472494823231135875360737536868645866299272255099766044967213476164884148160773794180544786895784238756628135737147432956633447320249591902087702618410744976784588031635808545289125058898669091621544866073635515679906167846330974127293800825873920656358317394719862815403828710584829661199318831017257292790272031531881446409982276265408107908027177853445620495151133692013771360271181674787833549140615807279849596821165805964528929322397407952884643147965715487325549692136164284930378383188903223945897135498699084408871692876002278628540984993738358313982434561553629590045527456425769493862396545890263399786762916513062058560542094132703164231488058649286262880264386152758861701924502345544871524408540204369879775374320137641947910577545657694454860772761684675858199488332011578350815250412742515087504314644495985108098627469973615510576728371533758536423653420679587453100374300057041414955220567334233880007702143991870952072639918668690482810938592509505455571572150796934350779380504065575946047704460956874581338516178590845939068720606149370318772338781535411873111172522847412647507142595309217844948819402501974042745833970794747364392034457073241346904595293522685059820118285883018514038675694850579697574404431663846609824687573952279393668677821362590564218611762257913387159762651635339465076171742357112415899782003074495533446861608705191935250358260793281073775456618291087925169017570734214863104080932437260425778858031890839389680473701888604707246399436728234804386643319540817948364329921449178009283300361916151840797339662696181731088277985782069312032551679573317398264116618130245550892123993452415700318652804970661417150005221693706831322380459074681539227337263048827863202332483278481281121027175865697694595676001471237238792655275231423033454098299665584220104061685083275392888307324997197802584084860993867070704774332625349484692656892565486102760923486224462589114240419323624734021951492703595039908915663312617567460775368226332682395205763850262134398085862607637445162756934279609672706103673167997018882083017682565572079807197999609277272042981958343989208340443376292547423834820675401057406050282118021542644088413409996265034948703021554431197829276692380701476231069558647230377404853103873528922741961167481741312571034467107415242529763657434991473163399709738684255463364236607586714495754653947643101144833289913259860871333437226452348509600394573762982761650411812787105564201628987990286586032420277296481162428693839355868820792205582361804879672837048411316590601557551101827891531319908895422922185720584071598355032166332401355640305496779460765337034143877671278821062545018168331123760226560883467681469495806860374421865621176952520007539001692448870299583535301724110289626594907674261570933044809644780118797091500945330130014051814436322758062169294322988086475735203632940116755965543129969868181794313970490920280137303151885654631855403864798840987817897712838174819861974293044302223777856097589302659496187084338810580504084662089311682736419427780459904778179746655337945364165138784895711804612964069271676979557915586712112144201645808336409658387117315228081279999636535930841182081143504288742254368964011177900251736277702563821474000698194493271520338629972161672288470294306503310384769254229570546700160700567533447927951073711795511027399403747056408684740416086000629651777530027787262630048228907377595853518572646097055171166247697293710523986375563307121636603634488084172684319595745271747034693294557426697388653117089962249254554787172256653837134570994913118768147346370792176336999911498739989503809613214460585319366546626857366852616032733524935116313235650036458495263732566281207531103907139768840822038640517421226863886425083603655764508958152381569225849766862592221419973240322121985858170323210326547238237393323543598249333140888593370636089165527668782315435621439099102734122895231266348023579087485305540808123728391813409986703720145771183689952688755787406161440099964491414913847538289225420031072711293310750008691871611056475133870714023575069345850112522293651250062328101071358466437521725002229841158121014858644107061387359000158983168323156727232848334429222403190264129312273137938063592427917695354555361152735307918669285573573289823203455447400208792333124717144710590625935274920306017989134547812539352264892339409307116919329045575947187916020380426603330484773968213319318213305041659201421972742286230592502258437295444313608177915716550821339998622839865684580202100829059287389137797940132518551038042229405921713874683161083250469184240905711018462390397840039550446368346552397373840493838667910192737665720384681588261523997555175800159283375388427288669921122807561504320363044918981371736630772219840469401021152198142047088849378342294719467195547673292871294285400267460849836853071763087525613618326006987678237267573564354650229990719264368096722261771005593533595722669754290267038567999506242079059640505667284225249437093985085817625860300937090326540927832278225001368733987221804240614094875994834764418840472177835291848524108518968742547167072155024472967251706937900384030197396288920944492493777936471323891755464504906224599756185774017904211749905826221656670065236913217127807204788169176527457714773354837926252085365531806993693320070078167092190053636387029039173663255140793006420296992027303775623251087745757933128354459210789493802578003791756014942935701769659514110374260512647814631986800408214494215980311863167639862158037089718049624907545209847256144500271337768328026010243437609610563866565455572063553954978660746104185271994250853647001672037323579024412840522221051194676128491208135823419690456985856605057753980520721316629389765374098733159472969128540051870583158408818573859574105047086536345309705722770557401644489514494151786582843307068201213540944391879550024636208195586577693591419569905684233045593754768079567558532858103011678897996917386286854824964627111915658991318740987764356030631309260132676723076956337560658363863025139552505113683578399168215988467668195584012334399879220263275035170025854188934499298638720292621989061510466254223904387450435295200941610670349205812374754077134092018667498122793510859211476284559147193996386276809320725115468994655507929397919944954866137714368934474490834590867309517033355982073463762939571152386931953913543341447505418620334897228420451852224891133980195209824694992240184983822063738274643737453089037565913990482473436718640159067381451792934505375241127524684084535498670996450924512711247920007550538403176208580182247610612045445866988482427679871470038424328976912879442976119203500719034722775630393646900091954085793166775270150517136670325350786407942046304955692217942005748394003422288597027686757626593331128401023980626956022280554856040160136352178085147394332694326052108391274086187586835502434961134434597419909266748083330257991982071129612959103209224496401229682037801335932393170208071451586687154004653285851595433866677854257381807833078727754073997929787738605534834451915037799758115415806052252520122801341943050600583161154607585797489405851902019846965488951479275737528651138910978535581715284312484890604962467053368255579337412148364865397882781905465313912541174658365467753997056857077076412536963522760762236557493724462180215721323669809655353067116552581041833471615884663503657761616134622345586250209343533336198324601593752056952182406534437758528045374728100776864954253529638776114114395473595393476294764733248661967722783603396382483262095153464571873593021980726153150626729038319863942761327516132077739002679570197469585319587168101489665600844813878180280706635782582013519849028053686491163616166451606333741119610054840578563931776098930819582064282844417537380073495046221954144480973796576385289274957119690882822075147447793027794352283450258173679337331081418831929901352229078043792980012053173853196826480653840682089111962956918578289446185898697844402518116684980323340650745719557998903446379200428464557405493565532998959907004707085300760653896815623362671773206397434505698362769241065416966707321922829344999175291229687718473917400032153712591059484129874700808798016009704807207427309712339242494255315342961743314786811435298589907801469643982303959505578401709355551875239050147839720245837241051802189222830351987343129791917476995998519788877028751509856662503430336795759002497300682800649651855465161175235500850817449128830756298913363588378624924705525404569672596173940715090505789424118723834489811207450560983654370218282227764320494183916436610811090107052871640745322109879575691267783191017112502676592765874726298808907537753482523203767034671012195855652645445207919306386263025907707597770238740628638663115273857267038757259966574828639623024503695241441451869908183325633860097052710205152106426949676983998441683505495199180456381385847243414508048127574645791121277678250772578997614245270231608729379765535777583583984546482142350039377288571708838096100099518887348742577482603135674584801192906050588292132152228206765666989718669813273597535700529185349313651648304489654268545849160731208421308786236712378319400902766097829833089020605297048260631728304772276327131046294682784985357462513642908249906712405216086643404016921815732470326529964399287388725838036955107986062098093972957086722209619279044396595520307802574294539502562633683583394454247393645940861897856368545799323867407976645466318300456408838922270881922814610414752553504947658274460862740508913417023714234678273389249063165383103156744046351752272587259759806050605315618809088715792682304052126191929063270978933915372566351609627697648047166859022316821073935555534561883845100726041796145632456036951759218041750691495444675638161054981911525837845052184738505765538515164988096505691348830966440678046604167265964258246833967627128091700342040450756380161572348687583621997015186236431157957838327700505890075180238869224324938583894262798916782053572875335281640729855704713293389438605081359008168996105601830904994802214065247784560066387658257730756248439533233533432104249857190341538521483173451822422014994248962416211734006904501148006086874568802797951502604616625212126599722276661931855612525691473480492995777201978239322662665144455329566706670281226144247058275084149725954294180613524938222853883238030358548940240572522363958330693185219664825223679941552758763030503992504588605369524373261504657900223036890214130604947543751666312291474664201601839537006006414406709204888088074105118697338706269971544613554766795564289583966833883126380125296636204248050926715518825525792678636911816681227705221072916496229867362090113587644657903287262821881925054267496536039781566567634288754309361203659259268771949885888883165570113752824573746228795103671867292812910666464993244289080771516866511779748350988281235398405761078306025106686229336123001302313566649156725539613391491978725084244123238535243501586519327007282140291478473671347985037128639744270398474554519630876714602509221284187376123258149512791170293238154443902422610837351164528554711289894251754537780570243372256869947729837214843974678293301117042185547454368063796928431401652411642018729885092976121173362709966507030272881002825220074159147697500240059110522144197454506423918221358549792082306213540938429834131230294439836949267739588518346362341473141297894677148869741316173917564687412258482614622439430009226755231735552672885934236937433717646598326466697058324104694488818088144286169657987705639608607076759913864517154561655375496334745027348427765083925554801359661732782828010534111936590442554540654789269627664870779466013226700303011689631874204084710776248929240483551656054618630312337270620931178084867949267310023586615847325349910397565980628003459576396056548060438644267556754190367976465447983794618350523464885915473962491715487383022211863609986403661211712486931541903302805236486037191939712386401948749129601159539014025254080709262918760547167034792612964834641774055789182311517643989945079226223752918476642543476744410798657396324256746407738654991188963332692880768577064307056033341359993653365406930380757294923380040939226610593231081638279647945098702367835902382349911391225340846605592979195616533424071264619094252383623299336270308742086842302044387571441538710224821918476660422258132834485106718491201302109086856117591076845996127371708570805736300666728935111468512308654584331737982821573599086299640777613570580933809593612752715942332106058761136119304708233427916664132434173323362924511276903140797051174055160790607474605652852651537885061612349640468516791138900480729797599261188696840884250929655842668284594757786313457192356175604334516552134347086275128034335504876485698907095553932581837847548482046745600275646874931987208112910244451917421290742134167433104571351125946744592392894124695453885277537139476910964814880972192881344134272411174030164388835117245440447779358577062204931073069697346998463224377123221048987097592807850351789926121062204118429401551275994604265711452756762990789515641318555694663947602472484822515910881560418476562359939061695817239081164882752474981267203107362382582899297391290306346355210823856857567817214954221641908510542636256476944611979396840082093852670705285918960713401617861618250069688487956697614211662229324265468710615359084353110941111506839192237693579896795385251000756317258389325510124783169434637180591043109969578575578490664176844985888489729908893043276900028207492079489123773158939142366765001592541435702640271016935506216515484683442853624456842394343045265867464769291573150351077489918289954279399122993206854032121621676256324867547910726586487732811762868701617144602969400723072095443337617823434555250682402510742769629007041018250054418827401318299228651523236850544694794654507377657917453981795704890794896812107503343456442110920249142277593562055205010565427002764112648037731748891713653268508503237707253743313608971448475668568831407029336489375085762692281655222594797631173947926570914776314683192357991542910227299168950809012213395643991859644255358893714927297407906330815254489946381753185754958932133357730992461029792875071189690284301663930132246945419975779427454331681058689277550043231789647295292600563761710841547113776477675840180292100134692975316546592569850646111626025613444399651380403345773429387354594948716776795695341380997780267450432178658103946594400820228164590478418489633060046436843324928756800206402080251008675727141138207529198962055985731825095121118937515030070345440214776055803746990046354235144896903647889839447086331376942982375484879182718523938520556728351275364341207555857686779083787611857616226649088313525057990942394735827859311566781250110895525242861577813173082754013256014176907146684644487279719285845671430827971163906440881626894144337123288387150441390628159999602820106047008622572313214794839912972024938750329917031094257393301989450596881875471162322348513202682294409940727077161870298148660094727279598314858397992430458121102335396344312945314811215499702267066628649239585585157804680051212251039389756906620830803682661124971206910257092149155065850079183545060469646264857743743322580851411163943500922918371476523096652664429272458557343606191451550524728550460312758821412214872454440117154407647555823311681800344393013026134533785858801799254631906313312880303227730512991020000786292103540147440577387588350752461067284899028264725909841652862586886754297604612353574933461857141695464871114755256512009334745610480317906168684565167286706624076510218182598046996647639972909540279288162390316937887144118886135985739154170730156015830740146836860744278861734505988032502556136638800920255429189636856453192526792880931330612881663320878340728974256711086825891080420278396316689332273294911913199804283722106484287907883420164233588546570159377052514335569151620615414646562615779743209727441196255336467109481535024396000642881006330817512153621427387080610787376622177334049690552878864279904447552507111957841983200134899287327681178038490698624939529276177667505341871016447890587831921770850206676281584833824717050784735695803013905411317549654697228670430075243959752708278393540468971341359245638608280999008474021191628705837132129235090446315871953779535616864182984303231708246041911322831490144483652929131170831788143654133084846066049174180524763508415170900872161515970242714355552058308044887621038437005197184061556446057636882241872198626547913071057261821556148633213203155050583509731911692882996056948597540793866413577625450479592774959110217552163850185454951735555740315327116859290538919696738840725634144809675904305731680528367815555882874867626401902785820194146746296155157567854570475929125640590818787859875627362893536148756713711725499837966795408540603964440689625825327827604789940932031152366824909328819273432313979103006764004510834459340549563042325842910757637219181282232464391867639291007925179837997497967956656151193546461888924484563767255536092281258901291281838114999174604735581988916765302877275360696809149784102856393387816273537765625332830167981877635130327617398302526680285706075580661573216820799681134265583403013003261315279145341246038627148458349678387539580630386836210432943767835697104891402451017180784632057161294719462799262959424415158030326184788010145356885541841375413809553926136602524713433550655255960157368212678595429196989358398507107653664147156455920259974868524384665804500878827471963176688948674813137199536500309347258539134598385160774866508383062813111399276379631676038756764204303395883078079927916627317945281089660761421043125735156531925728081416375939073505834386813832553666620141358728109893080598962456663892738227241625209586228727339568081691631768456423083567508787710840176987336842454668359820451397050593246099045837933395029442272798230831932443101047764766757358809480115057550099073794027699569650975127058361642712814503786670579444820283332390261743557252939797838030366104610086082388581454239921513519897771211902061834766934425671023886824970462978967336477827575962188696628847307864965124143461333002183415819299350131415050587743738977586267062364336383508807157555144650397074105287654181224949485154167370635708720543100508422386640820656908390653058209444360220644063810647039333123175434938165783499033616245966343371247400346621378412506352641712934554527625865004574679106683851001692121268437524188711937873830263559329728006353722329031087311904949921566247603843059369253283280125576640106424119858613738385688262336144757857989522554717863662474687575655795115315680717219065468240917091304320649931132394121014124355425879548328051794156055799644023337186054416854744140787316405715201242356899300572082977709469939834358760916595254890337432992866309923217058442106312214478285434571386378931012737605286639416221513351267166323547354133194385845151356314290326081762283730033785252837883324631682895552379121440614526032923618528885111621137598688259717488364890209902762777480432553497245060287981287889091277427448229680969400429643618815023156069231174375115156035185028980056549388918658444415529999819454356020970275040754670647610766449994197780865997530594683793532973237963827106803614965510100465545663688266672228182093827359155115451489524131046355160227930786468526339912655713493893070276465634722706048795732264403387999030230877109438687416328633663084439533163980018572546271392995608572339768458738876032814975377900882227735474547847001205871388990202884109584001484502697228645985975944593006897475738358199982267587457705490900205277234689345570371773236206431505547395911027943958753218767358126209913521914509734013649947122352633969920994533896430166931079209314831415550362886082441515180821909960939222495294923769756246775848956062474648754977800946118725104848867052815000919579766246214059819996740202788028576693115233861846231575305091039776805704347886479029748614092678656069634474457504147661551665653259018427677780288864577358013241045482786568166681648168802435313704058136403594901018299765448645111526271640214089062882073114103540223934709615107006721008280278737203149869541207942304379756879747185137964521065343893939314185231566764413119198010389434803988966845076409859326603481744606873409997324989726358221473546850644270302995864109510243482624691861182713949891084132055676770001220312671435187321001491612057459957712558369222669655863356891686862285623738034189473309669858643861092082853696866981697430070778028852705834505398438833366967302318737495785455163621639519820893314586696956910803606931838658484158343693523112791155867497961571879610881420251663869618017549864304895351667614333679462793291976687964927422622617523399940267841786987975518258587953169439598678401969919990827413153125680120760203571009855105623125014289531247560890811535527342699655005601097849692426339846603974068616520581975208484427834446170718972227694080654815303122698852662719589714577238932797439700232544898328556045848903668186002427033323590881769088754876296562025737761343172193258175666340074293817526319263427741615706633774121901425701584004142967296418771570231406242754991107064409036505059223668194261867737344885906231002775868666773800177440754787728810779868121798958573098059926154670550865738485717564775593689101603710312084613660461782154117335612881039904114299605264161258913086198320800776136930856340755726700428846847389123029063154489031653056820749452321893786714991433613994525762310719653152905953683103137080255792368948820063708531330519212187270083818970424488090110929203404698498236927129934920300525408072982646242023659462937578986426221787192160644730687368591980859224002422971507077896833728920326620329558369415236787496013290547923967622422439885524737854720876549121459828319124809212549454280654890136356002098506820976318677624005591794399108057536478067102086271224570081278536977718236651595212095660753826902506347532886359671809210251999331111425590827129657768901893843642990192181182553065729538557668660906482810100810844160034754797575867423576427644080774891779714932871326871983798212414984400829150540169705843359381689483402734731003194093063998155857351669408387563233990934968839966041126769426371811247324007511223937005435654154940040595441579842363692572750339502895873885167857020214101655324883417828708917414759219138192789061521498349043318370098464187554092744116242521388240635993828802937982384548471681217723887238696332171987776202269326356314956632212252629870098445298175843872090576505718753853297235503181201000902210297519653770580809917983611336100308085228165346282498084490828816958411509433870748118321288560684643794639916438014709626048022841684590718944785545524147767103332009615573647791103466420391512825912727031557871932889605689147965207813027694460119662306994470401498748642523856524379504125075483100306529874721856956540793441511302216139948268630037686070882948392521554646366700069022225436852775715222833670331703452265624054686145894586673533233950774259074782605684372926780049728924139626016101892219490984595043686998842394841287149477428109649931341381387015728172440961299405234305049561134375677817097749365365920937917644413328297364969643713528815724952246714296635471325010212143760869501108545455718538590288298255563196639300077110646012586226600035493860124931057517325798946863628198355626908292188738946883259135614912724336752444547426737758354622719417207977666419485286632895999271338702672603518748018326098626255963424983332808935413230154878063704491155930099008866018662411731171503899669563554569130693139329767100035107288227217933577881554298862139848803021021324346082762044393258813244938027138898169359240998182822034796316752280638678510918314302155739139957394523402940328210736214445171008551027204556872408741159049681656450984364523099119162430827778490544731345002856125724734166420475815009790201271003542357354017691112576195520438452826853959781452182898698268010854747531445229699941582370099099177348276060413239734639662884655130629832619826893708950273656890902584602669166428906152345437520219162892631010518826923911554595600504234213798215935715947467617728719688712260534247442321249029162136257928077857282731390523192490969719337103727714332293228481335960490889644904594064310504307337559614350248531366208637026133093742055728805930134661312957422869392673270555720628614328366622306309777251206157862997837799737884562741988710567212504178358334430984240510708402990036828838121576226799314688590460200198331594761744645509098822840218526271398382264745248443665447821043096377176180235891879891153952683915985699103555769345155010802470241072554487330668239635362104619716074018937614560280765844625674202325667066064446055306606813412103027310892138305108300415365441692525981542633042177954890621407201665482348649002771086618843728405959257546506630762646525344366578744889193766579057622424438923421384698396619799814863675415255735547930864339337789907596724369007882194924425080403377880230483323404525883051144977754769319530540430040615927916342195861862109217218547193253474489371099334251793657618759835750126078919700019828497045761513846456541657919849010891118252495016909152585040411222120661438174766705842715146933123030883902272052835100497134273451376002522232696670659575443968401199101057718594761320619046246108921948154104747728441126195891107636137284951002252699747544606145482323468213535538844947088063740839912396773110791140378532535290265113578108033859746035937029358293039080651447558989704542602190244203477261356130327465103521285409761523589412203784320579377288152714811306992339571152588052314596122856973102591779973184227099359566767754681653786771650878006813135453852840733338705976873007501680104858257369232195172455886324809112283131092197624425845733996731911815211290782875409869076946075837874279996991990845983854618782474993515878377149110665720375303926536100611176527821206635022773248848314303926329051270417814472163664799946380635006453678590780895752664174934926322408198642029582172033972569035292295135408924738149345544617561465925636478538341577807683317684737998149483607863913402174095064033582695026530235370592829990650302673625602946452996020848274232491098914229424269382957667636302701804344554843044422846564734688488392667584899666088029140451611375480416902445158187099087840175030299771863807782347739371203661817393278444510893673213504962815531638265807148688006962590729931981997879192564012733845227527823175086881506182003499050260802906857347635737986362445748283032016730562067398240427006398493507649054639746153320829323593482999141426931777201381303670985556525011549279186722069654812993274048498516769074009141522921374673399943290328493888036302049672482895418366981860977808237135648024266574123473099761136939168746212170423574981340839207092556853122541999400729520510492455878905386352082329084509968570198122066782692179125005865651840750282646805751760988800549624604317961267739457998366550225131518127966128658327991202808298580162054719908578234643204021149848425873117651187669513061371340617898307098059817043772546426500529911702284861671917158558935992672411830119651032274415285816976987613335684800574135040619164215688260204411623098168736867759801765525378438785433061708079959652047668097634521024066489645009695832158329194577429077785159855269313758504050524361272635173598037086365262198482730109145635067542607640854832501366720592333916316545126466103192584541278773223623791922405811695075550164017359702495077382491798072133588412665934189713511958270781681066289443778101691970841598408304189905090480309279906441672661884517038795177758807538543021382094045399541832045265991945183708606357889959439198572995341940169883022287078042683473577050664490139452635771760668550788460642954981002195638839480727286155114729497895195995865681073098934559002816724034001010155074396900064072196090152193456343313934730728383375401383811945201012150667230603346700463178566485724451110959874936740118686561548986529879379891643822778516582629099713432857760028554213404738455107977326364583805047970740170261212645764381351175126365881355961218893262599702512624887443610188903040320355728187851970537484016637925486596612500540184522114378032044783569158003504633493402269602408156784658704580474485156602489555032634225716438394361664083941734210847831269683338765922963191833555935102849066046060963650863876743570545041371865081144493292016538757979349758096864317971400311446279598253472285594181094302054548854085674123796336960139567082077753924403690301420059458445306787908907545770625027081739508669963301292748902124367655296913369908840178272983609093265816185040368675226024333910396824063802573419314073288151863415143957646660156942619156413569232695725733246891000743901718468362482324542605592863015677254077218542595878157429790708063387231724670303960371450536880946822895501933938819119600091938033852846148272961689764598056310085755119711525702473696612223510666861132875567192745922640511787459361026250282021890714323395711856527612982678649719611169565919094104948323688937198705399738229026620770141139409988906560783594228740297610431106969411810833461001581205320487104992459685552026962422411211041744881418537681344385504742951927626891821616840234600838266190589920491284550598904353712865673720042931659805582280298845614395735681330849502145890987440644284223659278760794513955882858801004695450173256244457432089932933975392668939187264972184929884945370141021047861326980883001627109260518977242438145146712989835811869886854578106889110225337244236040400689794163614166387972909076202755257886133629127291127062250609845716472387014949644071337528488425793580327827846504130627945687745704515859335476218016022975948054906118362587306758241357054177004415261917840073741478724412391202556111808601868074440559240138534266713949452544964403483491082368737541570751841765345818799881090397554487209394129902752346291016272786619621689124057191738934915676599712347713384699134393748247458336598109939612746184426733336602025193246888372546263620611651757135416987827282795314777541417048258228586942516640912311426194384215790099559740688521065082655509127093006094321108025913574972859536879081612080692779296942306500627563600791415152064885961167334188879025372687987204843934866057319137116657173636185128192443546775138504256516689475667883434952723275985825572808289867597837588896779206143779849290670086033362302452297042762966904368758724211204179712793658871073845337389494679580701848341801076994484232175049716795403420685944802115539630042491436977560906458158674022724067193606216734642122895510036557843303203444544260360295873007595343155666177726402521896400978090119736517441050375526702193405540586445196443667934547757799311111914868875405857355119705533263881685922040789051749599484851762540749208581408217005195301468745674660156375371734662863083206266546177769015865024605499052530452029816489076570773664246695996955677937002017464392753268405123173923381589750454755438757630941775343312146126335486035325413610486835443424729410297516404766988041569081784446527798504968383443307042298660426944699209479109110264575050733308316488583956907702039422813527767389578669414532955290934627554588094446695858995537250519727422055648848965839491246636619686466284574082874198480879251812639390732033219938573420175173238258376256577369167868551448820222125154294645052382128422629183172635752354379643654088548092991667596208234902300589333037796501349083056298740891344921019214267142401361053076067714707463735731333906966899952207359331713699120420154017757686806997628561336965469331590997236737883127650663291302870158224214110620479746731492999415904472914687003623975111044712237181716457630601410527958295608503452147235456492510104395837070662974155517960698513001314927899288544977614120628285570367206577751938505896940532283587786648312535407377535249154668982667040858033120309177839986964445977952412863896582432041223743686771393865234032466211432205411994597580894946529387874185782484296999192261252212075814011469817103151998977320704440428397387017185576662872866029174436480713969921424064652126572746810873479406370481721161468833893063321471753453425590579438438368306100766076806094489085944484298280547673850618855570334518289028380940942881161848970374298075025525049891160359396213589670836041384478683097589448139861429198912806604026147169853487266203640417032810026871667038552906551887814457120107634790562496824652696274747266134538325901752947710082439028535422574940254084793733837508120667784493656593562586728071807467423476493480935328300699127557763803442375948883753190417134069022868949191839869517254187215422331929104997152754132985967521473527691022978481136239974834042672337377406105288692711692309807477953837884343091057184454816051450103054462117916010419896190003748976869734310857671483045740279019150988052435485420356953218163595817466289934292629347993128843339964564373388454170864182503083095507455310856133172905061382289000899711343987731913301045887550266751872727811802488111668802984236267209217705697162106209851254981361359592601781937755788180510867405072450732351480901710656969293595805595562796046577554389459371857614823798874822413830192596932960830507501220423920752702937288542927087644747666268091544974574871957322040434554313926291758687742536919015762349186542907775688070861094840122815312022400353016975248209468849636721224401657041305873942333916161275803907278571325437392107656852946681874498169359339682387139739176359922224841794229644816400170434331615834134521289826201362708296270785430516951187757778205774479729919331867241186610549164366168410485326979103352583018490424334640393357618580712576073187316294588464475036331267734875515797117421245893929433841404787964864636411707917728540296620648695749840455477101489587895669384425384622008177516168942077071067813486867097392023158340053040360498181255908446687261513482208610734771941212217803682173166023383348636247250139365909648847977739325514217000976990150067546480817128673376724777498814356323526333606489326148194483638542403943781833952708409261605913404666039213683002784717416947222568476729251049216663583744814234081576612917268540569401022633600240295295075876194748128539800985803406916231928336685005195864923003196227288972819211207562657730769306950514499033161440250388462080529568984306796014860771529844689713074116359852798109818533168971051820695349181328818948832926971948016454047131054871929789652524805566690666802594460821022213836735369907639123675251663860615169305350964764753412178160305356332663161816130361369382170943670751959852546889828696912316901134461930291287248412355193757469933941900651948708722947606054182983699881492725035096197050686113762493491326678961651174535741557284512347977692690912940085019703340573792152138789548378980038178531875532041004243685789457747990617669422824395083457714079626371832921448777833903996507168763668710517449333306692577321161827048869793823510056090074709801470457583479409079738587974709974845182588400036180157209229358592425141570660055807572005982984405496892363782918991900241528005115111132256974159857664787711260747885960274529701733772023935060927784289001094269695468779488433176818085991253166301655628639962031837496621226064921836475975764923995098351289184938765371172560142451113174402570784425237106711830175893341762327495339036804642585570500213214308170489052210257542259071263971792817822914718825886116136488753057944450529925088452101266559154412631495555260983154158008198346893470907771600342629348400659444330756330112948473570543448960091083387792017901007212275184246233598970844558504143554811398253675550599962466582366595752039189239275886781161875117817652999626311499059702637400184592221608956070183851944663298866183930269036502642496144126684145036133005104175756257005968553105346604697131198042458997676123001929730889405598994394994422045911950616505732794185073754692170768040053586182467669728403194712429870004096193716401562947760065063457921003575294332323915029527380479830079512338413658635312474692297890182049347030361244329071065773494396223693168292629631029519648599664002950316963775463078929454567624307409648648331823728337067989493839485674527447082397507623863652311297316596282033247133601021732238637451826115266260647607055361410333663501761446683401947393739483805675004456578780093258709503094161562940195238645979314024511163940534513206633947415377349576332455482245170167437376788241033204678812956833725860592055511582447315884513797551727214038200625321129455520885565286438084763236291045049301863034361192848157534902143490762778683257295318053216365800296208990442942652358822930379698463718110593361364651605483309867572857711216362646094194942483041115155657285026273335176459334203784123799737105193188829372419002363025939847428697851407542141294982656170039327162506814245079252413509214554113236482258800404423285296069953972591208208248167921123932371925998894717279590395648345420509948862411195234453704217409166095180053843312440280049754853751035790912112588131368611423719315194532487157948269660526240940686162640802970005100194190756944365285313891120585872599671944062747851509953857308128843209332961544107018354981490045486391956957114561319095962146063718227950932501207273884780496854383567551322416200225337298257310653802762285742526687389671714228063159820742902278235959084543821095621728203927496202735166098672969687060640475710336532792567762491006890852789300082006437924707579765816631376476622261862839017032907703254489776501450213141754700073754840522814393753017393426606169823946863214022487643269000272895007117866364298411706910119067064794164849566919058280408753594792353880639667485109478954467895332472413270685798777712037626855547484816280786270375891162703053517996954133350968719264457515188878710562112148195920210383352276193931857237014998756718297812207261555952701074045514088270795368197073772296906491806894274600489255567238965988936183748003603234541240423163648098107258835507254340416399361648018536980313824060224924292180239652905170907534712999436482037110899145054576992727326453491951884235887001329385691511636614259998083160976822073862108574756588801019028529022631080730828504416050834385714464608703266926438925409627366156072643960092937612256138565806884779039525521877476684562815347664142266627796547164585464371233987016384623790669342074539293325577215332451422864484518387219840591749772241863905939950606477457358333944417242602559445798438179165743989234942500672923708576369270883862324144200531016176194219817904955762542741339805232020644620841709894136309944709643364441956704418392942121876515774939311747447706923047387727379648771868004897729622990744583255869585159602728673262824403965009844115568055263755225988858468505456083362797205208984563195845750522059579624675685387561651888073693035308744322577990186146886707389411216188464472877721956616844446484586871511722257498848351474142905171058746245486709802447705987986963504106026981531289730722939575500283435097863439607378511797677243293940670162077776091200646239758935461163778260410744778439014346283629759060814163143628639656647567902915484052216841381574893147830917082782541419206873549948571410200121146354979495306311940040341603733890305676255360853057842393845727297052078784448111782823847981275664156443773364847255577308402863020085855000790707566266514601380756449614052760589337350648105765612856396509697744907838504815181747597710969478844360371205452768906203871060499588357128216707541550277317861091976457601337982214077069184057593344823296440736562272987540868744354341595564536540617929775922174833184076939692491811136198720105202670176858648341916234961695364644703659029226614963037506021510865326466544919089234345984850935873886866667824189470588708777231020359461692477532766833560410757860256468235226462504137336320112515043762925666666791779986348819343933202740851418638777551727830025437995296759654799986822398395142951435248394798712958039620046168804020221482911547705432677625017520884758563494412235227980448737197564073670205101328134516486717320659727910614829619308873720291280029318947557039504636071343944393378395499264738451787559966653075734737075488321012538879097813978721334140436758678621165227471371167732843835456100204313788005733599018761970447879894756924411292852025044660612641695968481108788970990429735002895170484514259886525533069265061016660473998492918061574337855799638990059680478164948292697207736794189100968863392055515128138452022236727314600894593599874122375140975959398541912849231118130191772461069470600902014535074131947028735809994398674142692674492591204994621553765910949208473127377672942335405292224462698843130784449955217069822437891015012970123804652854125021065283375779900470284843356979869811419721149719565720092911704349115644637615465998871828235647411896936415728269205153149422904413126404726225462095928355635468826118851753087416311382449416706142306142042217326911334630045451316010937674569255309409009002277958339032885530433270555248113023052673272642123981206023353642023960239092117124531431048837439469486764689581440273494183357922327507812860204252304756925916955400956963082303061463882265391270930220132494438821273359719787572532334097695733489939629269669326493564255347218215198335429529767744049048710072537968138938152062740824460689421876056796016940721033357657761595544718792267198555393825348745489936623718684457069417105583702073526951142402219512131240261655842739692079095823884388763734472285605750115045291331579371828117745286734064910190612738044368736709072032858159148553648341237651670176610864799431624100960300100581686183984657028803429206601562691969227024377271071141356998937976750873670884241785758486986382973574451514579407874811371152297460445476402633719200882564230449087785076943558364131885828149575639347901051302057037406814298715790942034878407329452571849497400583596961501100580188795787017690408395380803259611141513231632153876036339640260235835277508401797895379715761273950434851678680850995983080363573990695883887278912916447399778195410989915042301783674433734157214133442485229304560215115408960057471839377425940220516021144620384210002749337888236893320833159429410296018120587276512649990771850967156025304707275916546616842692167978977537161359925495432157375212400635589331796590077714685778087494129670673512923810572902224973374556734913910918586440448473236162212039348265873972033506899562531131278305436609833513113356185071602396967753299107771996533241999587978649384251145894525310634410349037565690303594562974349095510069247431611577553656046237125462482104107553834715066502807271962267820128240323940757109989516068835051459178916183953815459825382748798363849577337287094199616317089808015697627043873323526794437734917220556132848830936333598842577376206634645034845804068242070028050699807103614131466321044534024758314165751016474218803258136881948253171844663074598513164413755780543299799587407918759814758519463416717934112524360465970067264149182866865704736812678953719778959578724071936633572684583428496236288171486587450096093067793086610848550726145360224434052234999692503471065806313567436375505667601152670824557274721658482755407250439763043945743681430894315936023206823080176155963085356179299113402170075066318347086691115716342458746022206509353156618617546644292690772514106869907708792307664252181577701445015540465858252222011831501038334328698369976728418259365619091252201427971785107063889140396353545956110146724220672580148939926181931888046042937855367879713745309085901768481215650148895906696229416383116408036708486950934262338931855422982340864979512217501810531561384045140068887168989788212224240329807799487698236714388509639645548834009444545486880740251856037124697366039668861312062308295671764688154219181783261973245955377731547340362019007198490856809205538277582604034156764480920531613425226728325333103325632110947314393601112965036641958275270408982636494272176944913845903280567510616019380457284449675698845185530041034522344570819409012237762332623721186924568720716968513435394171325803797416711256300784387074974557068362076353265870022479989299748219038735143232204282696789256005382512709361084945193765332430840233647073847210343425161307275711610417055739544866522823231539039846139918171986565465855065614111609612955547121466501878596032228511188124871242479048673754810974393623193008955095107270864303044251566567476728223771657216040285769215264615656022096230457305907515729461305625244599668679326421101408574186164822637795033232304521324488710153542338867374100915214076689413124239938271073968025220599323111459649993479206169805775761265322114477483889768496663293546177149252139265398404350537757073325398999757564086535911562067350541335869744763803422834150087951983760700534261735533181337468260720832405029700547082862949014240451444195343513802596991397150023487040995392499479306440788915365261948392215689390012256993244517033450883073652672801155249381592731211466943203411477236900867065596088285507699350796761098693363348291115960657612608306738650839290441128708808087631082513786951630834266941438746624914439083341475703871343839022299715766753372368557904068582646375110529582640289656707837070878836955969921771911751457497842209736676107998787113051063379917613758259350517870609667479764154136850758072754761975448490956627179107194716835382580783816358266326868194742833478661775202739507444370987779441725072945822868647038740151439228442329172891487123305457017564686268951206460492008978857713803175637463280794260217139512718091161244138388560565805206786024058413109039465400744391706050647697342914944057871555402836030333905420956119051691601821916501923261569893020025529192257663243224418419664424758099277320899770026491538376273346743944079976192298298348202829358157321234605322326629185352802921081893027440823225237116868433448143230617922593539851818034045467575928384228091583476258800871934608975159205865037805712668429283388120281149896263380771282598670223582395473341743585438724401443188158633392755292328677785333748355172139972422279663516180636167235049629524168692900043684608790415648562319182026337386822071621936065820299688366189503048839649578060405076811573713102842316682616766145910727231647259164546450998737605029650929723484791058205157742994991840483322955568098775261967241656122936189061352419771689391784740343420040665885221825770058088748676423317284163304435904681146702692759595949729486721243792380897353876892471973469489711562899149832100828497607020128473016374617226483123954006124456726975172797300763243774613738728872970756788324689122791952884673504583996628043351052882413870528110667607833612395389622015642445079624715005722117224401113675756687174840587264986233757658533117505629804991689755048677041183689095355850870865097349651778451226450641988938499385804969805115230782899936629754867798954636795795572467523822861949868147519053681293778808462558685193358494323177137507299895499042139870209776793913089310175519950142502946721348697936307874842312528937985788013303427841562727769724402724950356797163212089365723061502136254510017886233963209454059411257940490548919401960028308068389473491310504120206533844191681519321622272771880479196353826377342951850839795525349144078336588529071293933625727496055748799832558432780203345444431822201602578693807794367246456356553296267856348440682360009573007188636854165599193849955792220713030672758039503224013901366891211675655472297032608644287112227206245143669684788801896415463078759743556004839588477941463348867514927692437689269441100040274891057218600975580805097966705739373794084478871828825545960425201148062631652083695807637109742275123935782623086475154572941916764533936741890099481246877340380660226851547911746618519078124387088129066950396275682372686882632259273987397838142090550641019516013955160799700101533894685001522448430384883216679158873537814898953413221535841662107462639330295797274842819426125637418615281055309620759512090013694393271169073499003275196546462691524520732523179697664627977657942733646189403597041415316956521216049050701311378415545648901358090074295351659631986665965462348097143000665475746487980811354817376568702897756687800093072944650578045693780545353679446436176660977260678399756258173227362159173445860694416230639548693363790830248690218393645276556725008653224723625331412693522294014169469386842684231680230332262811305238396739144666593593005510792794360257367436545457625307282255878811623240299652796772005616841059283296177129248295021427176929601259733747797335811024918866029935473796477380848304602026497141094032182415215058831121435136087375737109661387858236028804986207579576259475745952847755223841822536245824874934355125879813859020116969546498191561847753543510778544834839501614865161751574372187921338735894720748728533609149138045846845086685710547340734844193887774830594343238684973988880190875109432716168147366168124852276080218493608985979676404212766542240961881008516447541447047723948561017084203095544323334232950303243176410721729716204382089616621926452660636371670207897639123695707781319204788203624385841989232192473765199348792262642544739757769641484572404150359096835175065032554815487440432554161411358852343920825503057672406683816769607843336132394172194383676734297935652783623975120200357892610468192130772540103278176171188857169127380276463963112565640406381133610900011146499462260014929207102098470053921149528741034330101413236205243500248666738016289721756251144470643330205477908098152120194474082529569089897779739229037773090593404763027379654156233394805208092112575404923699709050180232811514383020029432405641240100512917802766223928394711775965823521814624405081484738422778861431801998625300374174418313536956132569178827739013688022119261993392176670180402562621433004270624179346254259645705492329129030699827876132665428538732883174822983088080284011825901162129656585302693351163902408224285438202440181487311099135134555867926826138551209647974663736989391284110529136796542178159967189210677391236098291274832998802034184659758888428759614124829919287494132612624329036436642338161773289803534507913781907200067263643038489458951577876494698496924168205191548668176779777680903164687673218879065876036448033655174499268735751341538859584978789993563708643989894359780313467280454680238321924151996967233209853595852602906260772635311168941830991481447767951174626028670923704397099972454450327389677168593887794994006967700856574767464449494395095819950316351000322377235899829675391995804666101101815887091509099629584450362152355886838284106299682586409573587792634405110250164415798830485649338255368001952511430771385159667218596323051174308500039421455223360023353933652386883686361881372416696214492039947746042566597541082887435027461855608128987845145474503818931084459720293514463627395363202274661947751308373006979930737560006605684536160705237204178394498802849874240624750126657109062358070859427844777989850019779084898343390572039895538868347763626418183779031507733103677249437481049972926818501925140548866597905930512237873215733431741892631980803060097614353048576978683095092098783562599873738777292565713447212402626321589590882459658495091652940934816474442534592982017180619920686170016411142417005740574930056974448942807480535628517931101112405410461647576977968159685461633299808780108460371142949168288386459084466776995027082773018600000602661875989228275588854069378864062384027278926000033695079078286228597726020724598741166459343353108515690180010901526315563024786736438101684993145918757122211366940567814567917416749224788388396361536333472399143205592678788587248452976972931082839825135284074637609507003726073821380702210927044048220039726784663292727275092742560972215405475966869602442789841969448676797474866002251085917695862303846001900453893317543478446699059403659027528212034725900167092494808814536933454280458427087121769023098735980579814974125410045138093660496889384806124702713270009755689958631913126715425144448122313532846689502315541050408949078160999488812367646504341847053325376996171553399447806105270619540730696045411340241810334081907631852509530180687814160370721495150417189686864173873417764902267082399055220166628851174030040875130834802348025342724856614374457341162170237000694468497601144242367092349699411263014934396197195719366999724188654108391946845167383248947790726803746900665687290556663134215164030622503185803732159558169572949065478765808913870201533373599938434099037571722808062457119587925681886925907452415059330640413856383002870385935770462950492870083634951630721286770799738720271603741665145853119927858851934096100432090934880324137776702069481734198100070298093816127782775959282674426207796623025743247890897104903276457373168256485980764418689332163648969682771677617051401621960166732956753859523786858264824227688947769384325769438154953355023098080118680844505763137575490632288754648489096218486960694004447679037322740626690973306458670622992317618707239392945924666089928739013920080039315788527274847960730716942141973971812728959221228287060503521084167994389583685006615780373551234166139443130590382466950966788267013219330935654319847978711980225211531898421039943651426981109778138297887244113295938791152081237353331375228123899393856361407850478679079826477555886303612932450286565064839411528268310204984762310362483329872462609713523315844239866704708974676840245016880861117167088175059342804525146526171662479314898246948760852347683565144534448437202719844339675561417582647994159317775934229283188153339796053163104409536741654173361022894244251897251585927147371847201952938484115935830621946270413447185836564088547784122642156798298627960107468563422129737511642915518799602479677081289567905795396455953130937569874970056772073741359043914284328793868510803962783812892661972935217003201463869355591005228557062920229923401550195443926858168946779659236521740821349922813559918742349239374683662429420442034401217765896323453888564954850347186304623267308972189753110759328674263949643969733831221541388579648683501303832110875758046584636580636386159260007736397701325032306025221181466529230999668874138210249162291749726537692890175646138193467035723392558181131945715613435946292455042861121985187895984574561015166236600778362062066643247815971789477388465255973835598914807190812627364137025863420891147288087513939565891401608562543111336642387003136374429708396096728810881215050257769601865906522994006732985168864790240579027526866779050903071755502507513149909026498876877929260063813598939069816318147820352070940720982141791275548700042545118359577354467194644252289480037021966764533850487330926135226976982337538488720114341633178746022611967362855104408887666876358504545292860478772729961551093146445467069596502756548707699007136860631924636471048157186299176554841063208011853107618225148808390662257092839254652212283395827169199393202490943114902806804938649148309879789812206104056873049489070855548472539900507221728051907367999895055458334111532398243365224107834266056534084596254660479875801604896279855026876455682394143321583984385459415678921214608605015225610205978950851488533802980900816360822952582299008633943158596530784839187144023026481761491422672768527709387034381100237916124471305700460945576637498284333219454882461414414089027660846734267544614158715531384815517678980624966414459031392200491577345349637000972640218663052101009467503754451788080304208845097515523693694759906791573654533646530315346400092235501791694792069360917176196466228016614327467268421265963951660083013416084557318416497166063562023308505307391993558601113694456769663572248473179192463947511681675449001304356154482588736586105463099582479052915669197196551610693604083372553877274520571504695440908865132575894564974721932784839118448504855975656767975766950643895444218428089647706847432655174294868367083892356575453721080949013814802031653349113182318535326179033771358534670332358912627911360397129617065600799437685227888488895352688600035429581221124093864089453693337978633957651570052520509325179415674969004666159371554710936521482354830805906697484189733301416017820677788956960126054249848477152325847864766240189056821575260854029651770411866253270817952132364851857051441977662150151778929322570328889982156483363161683592733867479358359879158410431838520423116054165710577507003568857146419239095705233484354863337935450145172047984909366628105970191248110601432978778493748368510954747253492680333396441776604618443395830395080721437559212044293227437208818727567435261293598000485654741540163607856425184265113320564463832607938335154114431004699045068308571109682727270844525647635415446355184079372921107013174937465833433828653691913390195535316957203996586910546120871324644000110918281545036416452498186043748502803862710984375885474546462542686934503727607660712608721173779172535657635959761996911626468321897738487927397800938186372376833946279631439943951545398335474862199238719143649856931649902604442510792316446956922056836012524287363669832373950581283915491560607494304430627655182242197707600802900493362571467665319024765529099979785648154162644746865080301997869296823310444650145500579230850140567047158165084806204279309382915882655994726646337770310790418810662091470466613915006983052613015096927726589118376554151828454232847469362640576936725284195440231270606546023569050015736851516608974574668018634355994202581599571178159426662591368173240797766573153224231360807952960251495531321456654612936704603943463860700714037896273142961674646518148479332586478619362709153320779182666126136886350815859652431774327283031377427880916570741831956457966356958272010107793551720854615812436967288364276726126852082507636690034073316120916970637575830202009227085283907251271284443574132741841243319405317254085362335636486514656527292904133250697665322754478666445422449330111109373979606899543182712486020078274383292576464195359774886547811397109727573597344411242976552929437003233586212803556410571323969940090138909275368400802369068999392525456213039183767508726982422112573168067470275261014467167315637518904846556514885367561517354948934334105752082964317241438834244544860442934734582724577180247301417449457725778926839600842813883173812151322579396001854662868543754981234259305068816683350112041936999355124524761117504424763762450396931774226482996624112392235100606419997955090211122397024061944728602071650890072963265597038443649008785162596722492704260423936011437766152241040951725000090170716600620674876129890059076425297739241436272084178836854688236597126164622817156708424265998285847519305837157341074040964343681209893247178039032434530794784924954663375264424730428190836546292432293011399820525230766328734858888619362150633927848680368820007774831868575327100610803936704605369206036759524122708831611869944262563575646508073901423286053831126634546350003606711979936885267273864083843703662341355304308929768306348426479804963296882920489257337119104408006127069099814710196157643624890229378636021007016163075928201565319464291974910036386027886668873632648699944408057882606268668956991230962018381420154693964865669892397975816285239529356490928320102154510497037303899840987530621916068816866953247788411517242666885489229812704724221153322763416063805975449081844042936561699004828602671228874347036397476906217583406100516518914074746557636636913432052006389431178542916017795498997618258114859620597430900912413555475408825520622363159775179386787417641283236471761083383385309775716498239290646847719412502214838444996435794013844155787831115124723959442747187161227165960040357204089302986669059174908706065922176390871491703200355193229327972599765246109907862996158769099084299282957760295093166047569994068308703629935766138785932294610253725097235164929673828478827557584287223317895710502344417826114000149942887563979070595013883841153639371705055030853872179453172457754927637873783008809369433187594552507474691316915718255544255496567724955686468213207692579914119933322793820741364856338705412837618767103382880215907779476349923675966085005197635246314896016946935328976154134582071449641239473015531556846794196394594299049116593839973220733581538756336793242646839447413942488907045078884598512940938049011128049634453633411225341188894929808428001293216851188434575394805430392060522530579277405475092027488438306222442234343959179476691965757804461888615326759195319136316173567164725918232499817064562217870073961050758746302953411883957737676931185321207589132918337025978751472179252802108744662507439122842303394454705369281115970081223399479299355705969561883954919553206154262081200253760981080484566044870310185571533457238324168417941205308715957278626970485412242076891806080473372461090032577191627583897378675030230759666406645459838216556631705797974877196116782263980958429871990237026400393688973558340736918849592976243481124299057456660071554454437296503616668793722400124467620358916460573590742805584205995791085647868136826994470010735884189821085102747410070442384528641206508297591431457539291057043174432746165735285233836604314999384097259033014636971974348111189242757467534475329515119993912919205537693035609052181417367671325117074202233858228941777267879778796442832670925802257051818319075094729510658974563363625826935082573581449048348317976685330693388006713392548336968702050967335396288034912658442859748541939027150922256976353215112131679278496173088572681352791920467032815938149251231332747996862993931054402978358775998009675012825082656833017969868423245627386736595325196811452938685836855523493869930417364954826268186408483308977934740194269863972051744396570469119207172164389615723776646258900300690066467188124838877825155739220307550786244736189287930246340228069323916198626868653844985254823805010867936201070536637727144262543536380234849329556981474454690406145967365765212271552091215939676716739828169654754449035224671032235563229837766980742525619011068944518151534628148583280182862128931305277431127139873863010071917011493662935929860934226831147225687559394869172734542672305588637452540426193325752558444165167404060176722406792028685779224148919338526407710694449206072516908538639036346990037151453598705975734382862659734657077107504121398455974026838553240698524914346783812263140206654963666231796389746224071223472603116222378567018226046464721471772399641697514519880444326875231353559741629902515879958370302689174676642998263992182650285039183083043305384147179196048979098366075505036932819168299866392465866953330844256065087642330001756546292598813873796224919716540246782802928223769178803256087754731370823025897116043289469504675367785961534154306579379817820384101185784148330640462807042466441323677254886124856114938449736009618102605390194983720319678656405698074505007089240556867485450896811053191984169206461554497982624240837718677935461453202865252593754760733659387771919564913713360773790911998116942465825808538657434298115665161185396341069660175328663585808935579131306639588687407726111543943851785170329058364560295776293518145424049946525975043895411226598006758692207372251195536427101305953220133348757620344165780335072572094740176457027270512072634783461602557248565569967824502421837696804068590359004262518953274579309183390590706803215051101992323118587740970289815962180196414619447303738167991417978748784001672522768544479976496337151721449688932895046529163386180310248693171886146946420563633829364765333069390864152081374919861194821924211711753831822352784355912493425998943366077574402449046971151058841626502120963916824263435116562402638937802525437035744735506202558620971650767580389683726502742250261986858143960384343470174916213914508449372613953660445791555854640165393789137930773897840035933795989370775393998626566551137675738433857918113095628062393330370326057192172071993202403715972934027769051656843133581491191818818409438799079282679878777905856194364599104517287659416996400463932923487282537026558551109068157517552026461823742816404365357559126592672714852994450409492849223751618194569293438435999927673270212459089584003138369615495884247898700207217794175932902609906740560697964127106801025614492876370269930036249823170313002541628108797626147965860886671584740543426111252778660260448235925752482681535159066161746196117795766566157204468421702659847390203644145676753242452703562020327014398639361957375941206423585952994465357522305432822792415250555099658156216427381610783010235055501669759765645911609148939423598265750161879167353445809838470615656131404533986145773679439496919940814940948592756130053685233254881929945352405350120269148777935115052574085395232218953898817292135886776389962462104354727461358809338706034798051263719388601907739182105291317974251289920128366219573618217096038966941434611673804270715543945740743365790992509293969617891736331879605248084768814263288899123506863726979721379043922379342631411746185726987912237439483290830814774577316424756606048905399979848063649624558609817443041207130179242160584294061668804623438166713823733564388521655502606139940357646248096102639848933888842288923405189765934624633751914394260087915051409190965320223803826454727392104733463853304125332591624328957617956090414046168003111811445124600294696315433552575065578290009265210745197620550306685428661601966624990910716314420089810722440242235889475467932445259175474504802591324969341616961069909999038958564539866579698967010591119254564236734137074234400354518481564195038709451704175186082545862638886078664055633959160583438013679239886540853060678078689088669471397620445210459835425323404717868238509518059954351482177541832143946482773840595093929282740282490906516636949452531092092175128075286231408358188271287879248009738589403288033310247109610685585974145190143445292745274594310311537194649720013059806836525887120833849267154633808216126095661600896258007382005641436901831575480377035871997600683285946947028544841236977184709065680457815824133862692809958456445959699601306174153963211398997870263401974483141661732079266169094230436450267007039107310968868620912910931153611870630339195888229169057538643085739607907681086862909234040298968739107057296073173350012623193894468607918795516596717878123339415107150593169000920220213691679634211721732198323435078327494649924567607619176570713697949526795947995389917419970366132534002035508454564124899095194833276162980683736933324353657272707881040440801978903869413028664664629791565540500470514600419922347214457891723199381307292973579638504027647751255454597904904104685422156677368363312637401314503246481755420155271598186070658935158760828931697122182869034034349953008154928669785079003648410109059054307705711252582366095135957155380151226037617566913462132478183733372338517765147851202078841238179604532332593576946090665237811601075030075820967445266730055638898965443770065091831817133238328704785723094036358602197840847168268807695676731928351621329997988946423746006583626341570698336308370332768073497439540230780522763178459359840296271355810077635412035278855391097550201620092700030927766005495108695096699375841438328624599595744764784479542784918532860060608659325192069675880169251123492940706956520855212707103197747546508512269898463680009158387460937577658722034164906605531833832656287436434139165373935524598299634369351893214264277800398191449714271288505543102777903246075803219624035929993624125101264649104441024751341329261370412545966253114938496118683872442171022905123522114337076710333579997573202655731887468723996160328072275922809821096391206764714978245151898795541616936857179684479889143829634689545255817743902665220350345676248757055777217848016007939231574929533465565776001639689095419027532933125617233481627217473709513219825788135346953051311765342503747622329502382224831724403162345665607229139625735337000662975754020157901840520473447637205836624082681707000402235964784768626907529054140049088383487712184480787564852522898560234352773041918333089960359178644997444991696854889426665134721229796262823057141512083876021468498901228175288030995346755757858173518726233683776242772938649259360439995152603065496194980277008197058863329893731747660373386560525449847466850006168229168330044283090953240114589573178161299256717103750815096889228658449006500051739669009053444637489913285471863091755724978075013126108791322953366410885401530821153113041542154674041635662484334157286467445842017740578076454511001474996765626793218852227570887303135522061248801621497762747218535754356089588376576263666528259420248228919258998697333005438453704482802722927072128785189493018261457564480380301020357126464374820832345145507373683876886002922794320305398555328139222458254898676100144513943393321185246143865323033246883020030034086990075060441968152417848990151276935401333490773277523029944371663888370304045827112251268712451125986776122487280974534088566466039536626835424158096581003097256639133995275615926647833492478332465776119549704917025257028779151160857588724024466211526799092912030606390424696713457081701958778861806085083927787744430556941400666649071796026036665076819182480130547575572148959121164320467777542400005758621824176519823626391452674682312351321605719490454745883913871229056271180159573126481386131663184717372259712037306048103798984519697359654790726512973025515739518858103663064196419342759744397466814250098246561035994209376022531498228581437573081549328477093954187878457547012888133085723835169478200614876592408040270067610803852021831764290598684253409489825531153189956228765982988408467292353251536563986448915774219955257937978149866316291340626884953420980603697068415998047230536420304562187493792098760863621733451336175710343486253343254498523204117638591230587451718196958969796890063315597427972417789710611048113276234482943170438817162176870641504530683786062844861118963544180777760664327832243264983068865967287651135210987187377634093293649828228128068024036126964477826554196106643924604676383084441529392795164239937715998495403937938488586307479607683920475886099838429436789390179111505738547107520059476164520503939898070204276650427101214566839608443867599641514901990230137135768836759668013973390140982069342101376709797027946021760543426556268163138020193917673300200932326943626456280959227270768667648954050219863495324563732146575648711758250822991217146289392140433878960690205893631966584144811021377953226317435906878233488884357363022796488341955875527670215624452609232793078912302021273937615619760367095166830215626961999180225555523505869118623390128580307359873672012069694718915078623457934700937027631723429868597097082445342273879824677896406291987973229579034280070550678152214548172564631675876779690009881544571845095418663702948895530316068993633396829333998438844970714143026785554675203069363379668918360647774526862965754206010903015015721965799255169977227514293731205790554495420228852830932189353024402967299528935401184841416162574273912468574790266776385248872321020811853321751080772123848867432211541078347092579649347193054255528044967673124470041961946966614538370271941401397132215466171995007932612083515190993155774819640867353612083551386067060122927656413379712141901806972377428804883023179171572807608378386453139370178084978959981894848192811786891385135215550227176750374479556779817200427077859355052305923052103461066040481361765979084335154608524218996898550158254722813288107924713569281250053680204198840070895462017672971810231486609613272598903689279745000089768800995804532555278541698903454023078759305302812063482363397562991114463592937280000367979947096752620927637810555513387812717830892561432102981018711110922363643596217469909024463998890620886310360240884631256439556267461066524178852239490887128082490435258806002699952329422900496696993833320494062641506566449882754832185923528691713359156791448762562009199776213594739526772458937101722041102231525420576726653007488800027585668879553934991029662810533626646251191850496674035053856609547618528784584229876448590275359664532312211672907537651179213218727596340041525258119562582793760397339589156496324835028995626818011929371544623620742611316076600751383195422530394473422170488935322009052750410827678688751698211935372363953968301697873065028528191402817899050894475941581086124467517077917561335436116063855586047650590736780310689082451361618613927347867459780392376261729660794857339410394899956360421126170197743950189327376997872333032617033890987218179973945864098712633790746488641703920945803525819824226225347956512387827390754316605485630513875687837822922987294958890258954350763568774765252636763371062426827490307750160628762664700965770219797402744791844949846336400056874050088038314530352147305798819715077197356054478560398953802682386532154213170315149952336787807263772265475077243055997554611977335030066653777140114177027123770677446779369945873042314545252048006102137416096705649958075123355940632110331967032491009778383593538305632888602797422503196485165289578038062435701623566381826938253550679629282378067972492827729179265861606074861637399992539885853366021344965398648094128468799956413291673743938563335769606768564235010783696337137997548973240098434054836841523091596352685798839723321771628381032287726702601635984163012294300158234989381393260242020841102153648301939841638927074361951362521188894980149064671349223813017675115917418932211673215971114281432613713142127678471000942985699908029382917279733298952304942299595822294806360871352483585634275874015189985756141119274304884567929158959451097437642842124800428440013726428747606814438701427015312737921906434365079114754073140994682346680935607662197754907279822778278413129823893336413750636968866955608642810618768160291733357479627497565725275955068100127859350995256448132518567162740962354411046104722537267754608996243396977329480629819204974656432355615741422286456202509999249996815201871799081737300050600537543362594244814596272369363104144290977235718397504162738118378448051125236901670514838689089242298755061301375783312628318797048292907848759742930868669524150822377601962759955880387484822833762113950166396278096882973559901321451494583793239513593326548481365158820665122146258244217904840045097370967350847411065315821744458975453449107841294230246135181505087084786474716926680397427273574201379550537278828414115278413680734955094173902700703941915806021802254537125334012315037561579716820569064632536018488732604195145706868863233827476311489209572246082717665529735279438705457070354665675218132012830620470613570723305594443810640620842575075867544799322133158518305156666030811296792125478965269941090629245189860630296692548437024494920176023814584092477803099471792889886870542989541737813676128597758944870004151149248715892386303378779743715704164130171758181981388684926041931177227170346175795036007272747965426202541753115987780028798766608532313001679970893813513916731000311558126994468971632911060618404208825453216990221942614312316800782418055463381888483855901351438374335955208061882662487594503474411150622341477884250234163793211517788350250822903703924085098422146352489065948833115229528849955441040488467364426553666462015143500060287408323124685616464774407333149771251154378846930515549887917994722064663002541378793485966658433928631721533886846171554520172780466018139563566522243378862564471778807889903101488755689356843443861159321503561448855693591938196457556759068275199010803745117241726866834193437759764802083296454008524608653653874325329917943211000522643380125135055165188379754461938020644151865594081792538982448996600066232302290381416747446382047600795491718853444522656159814187438277968923763055925578581502279907149394815857324001851900141059830659870513546426079729251516920060739721085738309203787174086816949175740889404213497205133460084112570912961401189409597758658944471519195964708762916562294069951470841208704294091121908050359342276283378581805858312416390323583369810923432953410372949643943721703194657317033843869024075592734367619394537511140421728386126492461799807770659155503500891523342636652502263991775459151409401671552435455308900482499173170602503181623141086454139570706914640439914740226986164994636137698026842315790442719991209901232117121414226670630291157115528695623676045123729339066327192888117922509939790418055710654985691412305719302248382428687025775701323578350417957370559260739074968548188087871163891642792146243702872318396542287172750514057754850969654947896770799432385300577368575637587288054474078447292348351094509982249408414647430404989319400791310932041114489201221682310130530383964523528413707694131749289769560974928259182280021171607212940259666129445675446943025253060148211358122231597431039610977717056569077977037522742981589668094379708925326419877442367142664185202026412146476235133359108208398731777058037386258986888843201164109880188616618867263308700314112068602975927098372715423120515004090630444776110778819299184841632974186337189203663943368981469202975864515439521266530482691924844551320717577807229046600370048430503061984572548865600917964083403342890032702826792488090954844201399105131379927402662420282872983214293778361297558055765999291505025294316449177866323889796596969517775398122806932503622053883857127015988066418290193261082023817470284528031282728135120751370424711877873235725949429115069200105754205405514364444465371031932827468791967465984149088785175332883840116388853430185802860662846364706438938688482044007776086750062997936403005196497800413657407248593638092583012853430072590748393791500141930992212675802688261214465111459335785273176589520242743146496037555143047009661532652086161919906337784446551742345367147948191835782200465755570816051194806879212535249599913955565460985313448237622531064485670539185916413707953061544991169605637809095983044461209986584433480694664304353158211915974387999919449105275281013120648423377778493885753923697528365466253868569420247699819639056296322964156576790684692183707631976728194032262905926398166900666403325056247604362073517532254761236421146506734267250050467993835311861928904700022431397679663903773212441927787495377167970212836783543610721277373698427916729097476892676909917430137206369208009794430610064720071800859564814821761777011394356850891589615542146809895778490624007460416901023523140784604002289041352932005391860298488062818205410820616480911240647519471755568190764231205510206965549987649198042504714617439750396563134994556287715790857075023611186011282903252772793047425823694368251726295728309812830287138192213294781143230445003858978336110335675273264607047073053471534435321183272862214903292288454617361710664482779993026337791741838342687905696825384312228326621946844241139195930181910667870772863885245201599432051685813123142872261717912968675368632018859369315155681582203055578887838019190420092731954277131263130725575424436071226405885209892029537566820202495743957959008674680989581543330028968659860315320024067838304451147925234417065577112693517586408706080028189600930703392383800686216855751555432965797379244383923260605555495021225167171456239748134998144919251487427151480894567818778702787690358262592740373130320727207722130915638111567508035002897109378536387150379609175126873073289033718939481563736591606393629089195473631518276424544617888719887979515043072767858365772359113524805096592946805320552999108120704131009634700400060902008219275071428451607277676516748978199390405469568545964542226351187448622781917130812874060377113432927022029448155598252405766918659315568862599390014540281557987618847690318969708720792284552823459329959273597976745590462407208810773538712014237837729188468323486196269403739101053305182201722209407369342594326881341098113066689770934300800336951008607099192796360743262774481588151577610512250276421849755970363020690181307270634044708687464573165906447900476492894780463583790277262786545930195833156317540971859288320587522388767741453845511617268628203685527296392303914952561700803305300134213471649557012532516302504131778462589490711160600811520387738596554821242396178336294032508224745649545283350129539526951106447417146827666069458423763141370171893735213703925671555628194752482195718942356137065217001287514082671847531456723090217849288878755296136925544603267746490449447376501559718709176264434568493662437859271455333733618998119262933028203094561364667173691094738203870324472868325443781785217812296248084464591877625830486446606362831894898905216787199338504901286663617145539424206947435478417965480608310071130200240037507166179352300722656549529006680456382760705488872520976702395516231623609325485273519915369878976936501824030226666654276922887604463077631828615391386696493874095616940886584045731624565642718179814219619396380706731501013180507503661078211067462405787015013156606407207419322217231251959061306698738065487781665570014343445361803745145480656972749248392705526597608833221553544939324046696661095102237692638612135116769774415860532030777016617960319516267113231901086096252976675865286869669525280390600668113360537277719879354106997181618234431841150906307084143005024482450212942893646305860451621007801714339416509420970750162826238539014564897786648059563370887056493867624340093735128089758921890902026391005616504100373032677127286322655730848612420675461594095437713074604327811924057035838718021412468599567869765188236742905792258694218894350461703359714398699752688375767642775811319913387527382180560145503325935570810726325747909805907849292269020566786798897279839464435664723581109670340815251440514985134239913913259252661129580010205174868866670099079811961094992806406484520539210232181850108955506244928345513772836747451130975157314026698467951129877641895843685573157609174202636108583593712247287232347990678661966805949656270434753096808365144340384286732817172412382128059303939078649939950180751127829177169271865512426156061201610294435985212991859594335445811134317505170400548632297694026537015692594704760710493505541873832975321731459968330930875287822834229317834434994097643424334864769494499583241188014433909838943112193681795759623385229959701508540706777673776288512650601800893899668628749958236018689170176973645138784282687016749061989932409135487388938609602711081611804511419435834122305215897358072428679691971496938247269730188505098083433957228672700615103910123694618135041822239865663554538046912722942093859855559408266398516054166227021732491658340675432793312753999185280694442187394775208931837372207442275507983617761244557245299710811182994739987402706578668704527557471620245299024126694755101684827209070317011411108250670383785654040122082811395644427185027801963275302219957172632655710911005030461360870214588331547734335620419972507331388726671863511984065054329700584392032336215678733551607021639987009781901167946028586770969356005169134722145369528197860527989324029858987665463388014509570461183312744680488121661123142724973050058717224599326999379854488065515695404907322391159507393817126763284835853273274804803638246144720125144577149744160909801934205348060982453107520484432465275014734704894200331704227809619372935477515334193146457345834731826290975221882998940326427108074382391272990417355254567545489292546334155487727454962433252869888696842858434238542802494717735895807327278818459705829577479846964135299084556368327141107326838508516310678218625786930570962496143780029980164483917601026949242826066174470406829052494154894829819487058705754328646796015256693846468527983997877778413884467047964828541114202086837984317973895908033822878600444984775208019013425411819069751116897678632471583467727870149120307955151925049672966037463093346347537593388433867887319752391583603638474611354644012554957178166129530295433836844153918365664991312770464051190819488717432352009496245349596355627464774580795317602221224734814711734159885359327004450413302687064394202598712319942736264496636059096849680361872554441610304446169175575438680079356826687022952443905756703095827530242161487055520133239722227134828660739395583007377504027579853558109926457158420168789906767088823464706962712266169871224474041976013323587230591672334346442375031376834076978534698986544218881558748781053734999238502909064117921749860435788703055152506767429593260277013780646389838041325970248522210587548795260866089134048897163748774720304272356834190210165920008961816599945525047422220871047557187211739159962067901250667300378615016939594150553943968699352660544579114848988191230678439064143125612805767067512949731329733497363865688068771498436127617426624607868546466218306347838098861368154381052313979234812219910908793614663563054835663781079852964012452814173186482069972449747026025420013234719857887842635933243809738350795849567069056986926730514094736984245564103946519886213654588262822064373096231334285688195221397343605615482066474515694856740616307618923720915587194014703731812669829907018708847625604146067826794589691836975845998551915829550086825001368204340830331870417580962152087182343479602636376164932624127820649890289324445277782810640888735524283941171095595092612938407252926747154259453323017170643307452902016584482191348960385883391583813686239582599745059631310746622645212889375054538742995408082928020205366342817752120540856051190530009538028940613376856736582904916526270599887172309971870836712371828559892656838699109806182322114012427940334973798627704167092555488431522208189346780604209132738531693172706044909040061189824785375505354282904605035599244724007147679699517047604181119642749796310314827604128998928768021896124553232200991150452655203683447558265547285326271990214088739680949366023214433244537727434547368588525279177542582092980381659913796929186941638267711253083857561387415393460207074266836632761467932488515633340925460828738308016415279026913714704706507612372547465215319617558235528240119871073119295764941812334618953079652101137439708853895094304708221245123846990442848589956366195491639719347008299772177514772704812501891674334559290583115542331591774816232266459806728554562839954448802515045788940398568669463538036330512830933826351460837405427292072311114605881178359840800398439610411973854546760374761059081302691723658642808581117322019730789057781210623854498858605668971183843893179513359774035533728182878082871192402943156242952889806134664413508535314560627832446447989145665343894554868694618165840792865549980012730473958597669077996699211860685797508346850514145463914435628168719412368882127862005080720067642977898454821289229340531036231542128279704152370602838028843892399589846284781840447401451411703661331121356359830707152811931708810734862051123815067129340571079851948928649068605050723748136708232047954114805712840855244018613545703497030324448512920085971029192672392917568641353875058089339423261425408094263610307194013148877541431840763372206542446135445334137565860193760273904371198047588914260791060439048519908488571258566044019542327348677175749718482874748318900507453042104489107572425838848028447930316896398935244843719597662364146531227569210962325572166392886635258611369302967516998873818168906101428563720898137250118092590719393664839855957924146504866660936823680022607341865197686943036193487428954675938144706838127394945003010460252717788200813085311911631576871214044015994279422255304912308538079631661965587424225496760933573882622016809738060892023369950512414122284047847825624736531522833993046560857016721108340957761309493112832434204360251015240545752575213142166579118809218906697187624694833741167108024077612695581029053426803703730682426297756121042265908011490180967637639172449796174085987265197068786664606804597311475173552913875610931100077677515547195217010646308648714257034392850631177695957864097426361925953940190046437321598232313610163153190453187224836044034890708024796514737554653294898679750753760951650429682167687602354284889692557799017826167002480076165036334928404240789492754803392775855678744027137466780257642138251905500816611196416827969926589865312429944617645659258900204447218805351991360802366232979525706046566300392215443156083536858390833000954067284791078147315209697092580810285293861802598882033765713763104328536505357609555766018938025165262642463767996738381620263973382515299897879706550525373287428678282011517279575665155897050402162562430835180459890696360963755758796388065345197508387913742358839284829339844100434950695162113935622188523208202467035962057030036838249516190176689944445853723812541998837531736468381352763765383960693658893363749563200849886172637575686697329330487426010869134382434124874174632721414041325632074112634628457713588833103955385922028586395323771334638919489506431322225613408086156303868468684697916069531530854572656105279024374486118977328162445133495499021424918375530533775431676147203177148745040694405617774128905256252736540519713190136034496002479647857935208634333264795424728240249420727225067443971859866351049985862020117549111866479010729514554643545965397806261585900582183025994913640279261557579644316932424295232135206728787486008483525394964347716061522080348769015963388538399681137049289463567893291202132679970709956088531273654430384405486552684290034776953388237179090680644753685832103401062435994805675068419061644794397539971451712231103941715488762537729244855781450730265447717530236545648235491604174373189830644976157312857495450243215588795955008550438872316730963091060802289398373283140799772971811405906282093084560952941546568884131023114260395933486481635951659641647078177013425717069748476809573780459161579541267748749611488069588456486739291258197518800397641159951971874214230515715029976585803122807961431337735248727626882910581630512003775390586406534982714497116376900611700420394487328210480498950558425710803651434184001042004070259755515498575690103030152039442259739518490782291412172166150124130796957819899334770797628266424427321457061857803241404450511089791051655869039778529725342027787689390767674846934319305439486334390469598916638068563969024765565926088713246361509429273602273019787802529072922186899937086006625668259559499508834850871719740179487882789051222267583282057096989143074687310289083900341970869967648496779718317809234240105571844015486990024814815832238734423902132573172108365905151499809315468808646092175226997795289366013288767546892033475681190046262943593130075805118096981001473292099275115935484491946736790142642966969604236037270218213693827440761403429164890989467954542981562568348561025088504571593579265939335418353844138245291293664114109956052975566825574374133894561633733895652881149239849384014421205825981289823871880970887839785863101313408623096091416647799986882113298338510266701842786120280165959207362468375507952880286172951574851787763941046135226223424362056731422172374453760613787736156547875799854950325799369419080412635841214407199309662298395452305442604703853089263558618179347963277718219105675643923571235061242300833026285198232904994691087538747335767537113842345981363879877128410618012498511887077154317516024559517750862215875866557556089175418827403972908746181480596540090946462717546327943848119245473918824078540849208905489437171339106443915826174665995291950808986176515728725704356794746068051813935439157952086384543113732398656419248614607082839528878665546115634133884420308988604476172596618333096973542294555055701139020159652857824890629213519898047353053110230759657604220079198049050431301995168827411607806686803958447103169510517125375624031285031531666869153779105567787280473122615130111402293165666788417245409189531797772868421093266750476247380564871268357418882275848680467446221629850284851520233427490257944831507547654454928285249644602987127792895808642734758090244687129583533780896181507959832155522516780020118671425326110250293194563857775741656560473194131712020604505692447704056646540381657337437233873773632566960465364912944369720397552694971492006067914351504887537391734867144497691403624516416046170145951613001183426644542112173891792743871163596711873947714691366443648866912835142844970654684566956576365566909723512275059707379154076581582235128477165738977295344981040206300348138731926397768197627759701671863785470200270751466062412895268471022599126413964404498306970203076069621680378917845307212333460784787143705071390046665138663155931284998970259935315943777051123946941610674554231359066530292187954291723764846553968826557653725726482108007001503745856447519115102638167747769777105217965835130145700864451001170632745182984160042051148953578851875480895802589156751932434654542745478740497443243944968031133403078669610032337398332461920451532986936466400537595101469080609011743595630340711406413147913085422802825270973009737450107269072062158095806251587193181107192075781115465639287134926764567259357082957870295400348539583897956261923775195860523834966900265745646294412117758533156071381709320279571515864645930098599720887360867765094117456284204321638715684295649517624909963647284101100675057468731819919681176538195956103088717800893026423188912103250622979022358887546367023420002385235236599046219793759194900218591870463570846146752431347291559843467191014148946897181992934639021412979767733673136417280725629283399336114099830417230113915474171102563262253078181568386933122285287201280116578922058825526131210631514619559920882444694651607301076828791998306337817232662741060275289898448342418231333672396296446127810492916422509264380528661190258115596078935243772005182281566332071462725698945495652484322988546959128986038640587161284002731261099414409725593095446004088022935484974538345719162409687789427639041979650255164221194079429350598463417136021287705777453055545183382632831912142358620688766566235323687884475124277916376928060459585195646483619272081831179112013934215704996744388360077386630763445035265055359929294474172206926673193177774360213936981840848902688130553051803929808656282863400459575956126248227671361101978816982260181655759327596284435415849476737452498462485654141974151903996663509046603789197485443686694784049187716752912104679747908483004533601640100500232997599121662745206185156713376462101887358517461096221846646576781372660620112623782335404607393834824113919841179316252733854621886560660717678377837279085526708066328094909404157380683906050992667729932779059006443285306513895591629599726507408385984498126462410252265389433848136683561418750528178940489510252561009845193166061611618926085879577139387727792349075425992563028727328071803389221227163973204329458040281353704441039303642594390170438699156070421589100656462151425864552691147219341627675092780250837049442911081015671550239713839595404252407427655536946162189466362015492841039196375316435202958801471206001136055528104695569608884316345280034449825984724946155551317318042160140029227738199030061674477555157033642985138576537873648009606514745489472596012339217835771034541577539996281868532775209558566468703330422514277123078635271082390067903612793961533626666378644679977978455260623358712290754846220485314128748490815373236651725781212211360718376359953303050892766426592646778813388755253774798517354278920478079978392518636834905038430802481017226667020820190305819159598179018624502828797368439712481701514257023959781806633699200326649281393181967471311235333695706488292848486210460794940476602824745339675700900860618591418292750269865207316110742844573367803278821146615110239135276709075722891883295982526775686352945742686032871111145873691868111829881568693208522463192949815490415007559158856176047153735271390754928733456173153692647731784301439959376772764704998651304599984902446680499563530360166051844193107300910149858519861463696610693936516752710017792742579929916837353810288900087746451644547102699578190887908810849403561170094184963733768930343813926821841585924252698236113715834256726904274287550242869040722065204717591581591185362749841701211156117701870560136867385744453867614891067447352548026258045883691381506426604910236714101728974153287238576888292352511051647809892692157755141136388470746621707948664882068259617757805782316773047915908303789404883218244121856556627390767331783041974112626804540953864773043227551091285384253763596106303926244216707270394416848659593281735562510869888514913614332272530840390842668416105206346692336174946676765389507016025646549407650888975639675358036069718241743385035530269460546891995295549696482861344176709689783395665001536676938825303284284711400563708022936647784580560863362330347501772431748842494278443247669528300551053215431947282349672182829397883119502684439483597632335299007902508256319754342163673246990942772961589285326467527968446076275047005323080699931126522249190230752024334647659739470952956249559275377042048463635339716018495291096144811343988378819142011191396151440963429235159711200095722691142901789670914217144028173476659867814495279350855354237512315270549859609577186253661248379829166834360543285932392703487026993099764429418946428375766086314808536284764702958166604477186858428312177830529942833144296685980488108064650359646185209032994929153375550605775323011897447450050985560215331797960308285817762477864191111999154465004029931941123562893592800890101305397421378401612000337646911402055289809644844087574265631937850411871899668808111651949546173196567504291704905816906897756316337801458367956586316312878640116676028955002316648832171818694782277371268191867270657764457142319028941700360748828167875433531553269774578589171329512654876135418962664090954137892687802447694926765538283676822901970032255664743797172716755678131749231766510478637105986179448268538367027326988507876915142668782436945537833527331055890812720831884788185764377988074286048716625613103840324819363483436854707888246632120843453796014759738157407102225057638215552538864998440001473554128133842657232182668778996339501209096371638762931506882367676644962180966448470510108460218249509915635141879826645417031475166554092497972150636644454398770711950336747535405832521579090720351033283253654289908853387267978357222627389690077490575909208347510953459316707399690893194120904183592708535569667185443468932475523776342122513269050606176872595662337917875349180646331835660050787458181614515778345375138485590530456380558383261141748664805962611769945554467230960441936174923427157203672274103207745395865883574449090140343820346276073648851716154810999218918276597294031029311005406700469452863739019294897702495370127967578326887748933067655892819072346523056017585911327717370513087714933226079596172982590714277642255735596220569531936469980441538476136404610377208931749116625502731938597495508873186374421556675466176741456077984475098804444857482258919359367866332773079868905745873288155330600180000186682231811045344572615672984219674751042688572837678205093969112990550595694451595618372687366546776148970040971135940543413996218097259362509772459288106513895878869338591137848192288253855176000568463202297222761363411713868129170536124344190926805458388851919990162216222040937617173368582812135954024375580694822683993875764373035928144468386029151414721176960708450029636000217794222206847758532618340778863890393438858348574769127970499404911185232586925992319709208376688777029341831757204784161304682436613941051511704545375052887960535181076029778460675676062934270302304492258271130046314076607767870567676298307723758266611002904869088321105968113429029656584484237191234209445719276569187161352206314382199627363109671420617995501982277485524782044378690186799402930310981400472837092598983216435024364654022357267677658862846706806825595907295934237839759438211667627433414730720982320062990482873890108914285661164301942380387663536527168240222380213806891081535111352212819188786236906874301259230757133750725642931669490156426877841132536293198139656067716629659992704565066902689873132851334882622497461319272387285093725961079034760066416420535773367594421038846111671752650805099678079346192979383313012772393486688111306148039820708579592395626655438708076598438966971828273646935527041791816866657542569307837721507805977598596432115149994508486223984603101620772089331119057303441573109148410762383488531946148513114963724966040570104233707886329277356710185071256394538114006611374033656164584651165642310031602405484924191970486734281230671353385399826099811765142334867749353715078694124129287800321566127323949631342538983485924215120863397047188641935635184069384189959357800428436830085130635952186344575554643439517661972155314698716126783640272765890131035494607078646062424983065003962979858455882495181638974164905547460912748207809108745355357814645580448333881406457813293781967355761317036460111728280703677635524093688100929721634342137774752893546020017606301596723058285175462060522519297682380674158362790129080764350835008021997499384653460423429316217245016512816442919180967782489701856820518552237821986579686808726218474435117979179827622995514579759589590884248936254818626757526474449422114695960176446122461514391457484793157604444447903405179082703696313486863614706181788187008505254955146383547878215388167624896026620500999740149094547589111259201311077094753520262020712027472820556967063103340221616720444838602703563911894333605332919028066963771755282734652302672186017510166503490139511922224756903479540401186116120694540129174670764360132419731807384895580702733171740671514588314200903193464090975031722860245738273104697620353218261549310484837433317688672285533721447052790652553426579265609180017955416376412934161987139814391010988943634619299239274945761549122263270689004679268613952753415212689696217943490405679120117561869361886796170565245538240666234803132048372340341367314427810008039000934592823233208545821128938075209548738542954807273579829018291615710775602553596566062621981356729876328206703654170431345904678302809179600259441839596912073652698783150971449227881014973160726677069999135331899853992793309298635727828009076069726832614266144214289852201158433737886155283503342351885285984758779666084227426449355705037723296351857811396259407222012043518854589836519396926953188056645640881160068177915568773968905533285862661052889232832533792265101127162803427116895421658110864467066423404085571826300856472568081130583955686666569096190985700113271874825932818111402559676356702922109343091915583249017176157008010168193328032009744456847882387816130111669378224467196447161954887925859870976809660558604081556759635472499740684545157290208512220903515701503186814015383595779444116592728171791820587679399522724496064113925633006871378061891138117838962257075757031456487149997690050845748492425685240942037975043766926257982253374918204235543376149867103679393991209843528222473048450475627468502591639479546641757698443939947523587976619319086531183567038067803314889520059656203428606735479146715514371562443068557944834744734349713778643422744757814697165300645440667611482921502135849264471804558050651335853484069147064646448527859751523892347580751865262429520700017025794508369338242468132371640221630743066989367807989206760895166013014954336284240483552408757790846897813398087356264863938661340683168395001348012276256024434198575786449313436778153484155262575255372894583874522518188358431497200799842406571883563284971200255365727750142051492811128025673694783738338645975774719293868351128551379926563257385787008011188669774810267539523531642954249071217318221469488033581842037588076819132923602946168936629129529868438526567543094784743725778197021620316695332828583699122590393502947467298420897760720960279490945151497452409603659752205714514419126759215167496337755973339480459858676808147552437748981760609377383240882285052370384709967795770843264436793351280493354075720166509927278588736682696109078605595843707139389247336303970939298838002570262494221920576743455273508795163029918946777314497522843699243141228335203495309057211244917188054267077150039490849478264559606562145532905747905406351616908135086209921278315668869201369859341233085928385244648173513242476048227560474179664138514525388827518316445053099143314552066355376629947809799917674033156576546410319026041016435237568740503736467936723386704324548485410370537304785031410831601143590884908096654226405966962319535902487895253320800221374644367230774200524917153538702057448182209714947571629166614086974574319959992359178368777140521229877045832306886558824170756636318523736621941601901404824856362909833701962917404179293821570954841060317726851847394158609755122355729091189981034726345629310323888813925215635288276158495181403957087955978675619035284566945428142436955920571342539933397585199117978173340470342396169864294143191484670427926877727497236737538001536076448164583512724436141977768868346329982071454726375092797721429206905024770097888051978483817181235935188331761680435176695359254938135031149306847373395322205514654986528233418023432037764092959420777771608207457331007980698982044191845857700353581354837346192568716715534890478788069237718168742135683613750339061034858911154853555051150789855132396520763444586860466585980636353668149579768192036529432272824390189571858591728007764037488955887136042897148253540459408523209142330338740118669302096360079221177613259497971553648524781134217613299100838809918266385760615895463016560819052756143444722146040500896898123830530138975649287708459586708406379339449631509177481246364816288239771688607139344225782769154120668772676377002000892135331888754560886754747248436057646281902550946912627166427506915378522656163226696629646225097489971062164223447666986441752288225483486495800732796120634129392202311141263707901815848653819133857632244384268904227244237689290518004707564705604373678432598511813276252312799715492055870632253528456496593030508771973307960839967854250458737976585853082187988457022064074562428342881387285684292092230945306135894913447475793529289919991511798140850577768386079980029341638212478844385473707435646860598577891369446336399949676761667549032610575249725158913169000539576335305106048983330781743438523695023145313131159439508474450226550806416382527353943808599015584867149162826327812553651024621923937705732219431353939665418562036942071284454420438908704681068356926024248272888102944968732696091250221463200182184413022104058753450574634445151292846516593359159526090449914650948926463491800194347311373297545966028901217732557169055659008778202414224706657158784787960568718814002745373616970370207860443231994375900940980071659107298163050811727299186339334329523354627481493763738178838133258194212607600879479566977287500698631864563360598354236667225075008276950405781777540564619406298545325891094857088753552479865994595380865939384055541476356030077722079786107977031948512876732873179893208036387908805052471496150043660708195987051755316129178744665241366265648601990685515103220057968461104738186932600763282741941304307311935545163221850665881902397659392460541774757075126985492465965842391736165176421616457113258704160983510860660802814471501401489984478918030214907427462909233808038088297389517966683488423846648942624021011620308574727416948913250183842589233685313288394985685291737405501235195630595563980879733783537179589627701657595109764656724209659244560031195232273423237473996830882896298718831509092858803279957605077162754040509869693687998367368080959342497628381000333532635102835089678424965117651054971150010910228106320245860106668891907871542801362898478716267127944888319236456180787653600141085962273659606337306203942019729858158602070490201456679285403619322297731208289867987017937429891507086450130110452506905939002914276966533569423244628059774767519450167248722988396609348459000521470753955506905356084675987712345880569514190832228836875313903030529438035562567688198149077273334050550287959628593157682986847196428913471101517335749195931001143881524542108347188888144676667841588910088407732119259608870738301424351991207154064984329782682424757884584800500884302890748485086715513755260224939621007136644121722645786024818479339146896318178555976210661110857528169395428290454217015497067610461300465918925722859413037638106038757356650383706975886101401635753726356834414511683094225238786044423107108791919279024778585497292686627835682399545697116176289379913373214520559476594495987826095372326317291904485609317632427961669847130146511331983800272802610756234359036275752619097488737649441466057095245017794120448663029924292956149798525312648286421743116389001018419151806005724097621158548662452112726097819831404879245509890000024784593745941868699557521230317536148839604795802073936614561302811738154016720779284034887520896746701120162625099877946724498214608170032184728419231605136461891724026229508261233885685930430773299818030508383359703579944251272187798271662811314046124834302470906994193412360751336480623973170115597725839168642058939772277171717162160114914999211053825736278080458785096701753406151366904734099138287192719117690933169311211709671988832491938428424861201399568404058146838691770360766037640048974554836952371450606794689009226625458144688278995661235371315748900876438752265507663958960065142735445164804038870997673683072621822210520414297035603501707526958755968549077895406500879973846106770264107072945341838326020227734650938973880346292242577534639687119584120678026380979579947890775700371397565955296628397355293940514086130163186501826297146490123874217502137691608304216932324716633223267322413527014610125193591173773588326998677869828329648368071724143386133949824987474958900153970984305626184752580834994279398022102424028427267561137666129821891683211762192920829248117070465251576636188055188948026675598096729659377515925186753591867572085776855868365582741979740292487979633553986487522076266973548819505693560981867421459187893385162171009216829929002884751804619766233205884550527330581500947359585226911698975561156618693442079191846861159802159604265293818791160399221439165649716691697039680311788609801714032050440176894058910271816826881548439323290399795568753077956166045829088725356834629899838143747432084941043631397709645494825668943757711380557190917361404606427089146816434992014862492918597427562162195969820926874624888750050140394241685171868737586496875477761259742976970938855426432171262933002928189412763727454794012500524154793301366497394627819132925385832119829470996375612001557451272149843643683096330414396399434254935873784555134884181528310781623748101635263096881310811728981246542672409699499662025967581798465157641252402098094263179771572381964213238586858672394345795798143841467012320280054246503606735709759862721292481654060810978623072421214249842076330768662533483913808227668664365415937667539400334754371362812994833104884066212250354191604989111939588220590544602504961136957108295868054797229256646933475930406311133588295989311833280776615109425032050013528336197745851001492585960713196920598897657592921553339108361153678824754213120361867690465366408287032091056887862190373932839593688885705349999711182913416148729426249173712111216390575004990802632491299305687440842040628895989426248887373466170334710218514649801392234381235865986531475820678033185972069760107532182688733723287710169335969075168868540216460796672180566565610513935762887496915365330191687704114149351271816668119766120349766766480619113545894512205401959763746939838131807073916441879361472294655994610475340878688273166481753018139191879030829403292123327779038323957837478213848180494838617675955572842853895466770924867234664132543919311071626354229688356331507023941822432521327944376250618259227311260401327430111636119490434021087256378042829772790915213525456093668357280271392344393848291787663328108038273755858910394337806911549378071916184792694064780172664976091991180663480803184261128035113882927593891283612513524198519256259485352191076365467672926251776594595653705557396479278158490845225612394936280439358170808286090378491630872930965608112311127255834800484441476705195369480570493274675837254171885871190153303669210119530143449504682040731635927579484890459857883362120332539960778963274093507206723020048652347500454411698258921202160190682210728649625371864451533285379625282854692813234457710418265633120771597473534957463681203358645547785815048575070627476565709236814560736320178123301229871509465509322482435545352626447658428816933913137185702733796855628989665187349672911544835019815701974692168779757830159533864802279071602064943452653577686265526391837624115643249658260123930721976739864984271654911438922428331480812442491672758212685018572784753978192764771581642874363541581027747293464174817712343952346445772597074836698236371818559532848565143212797258390252111878383726986590645935424852982438318536667067087157374468822605620209999677620506615271824452777930677170902056633323732583027802222958866074540747433477759887002479525775607024573910781137896469279790410784517566448565051756631628341815776977335568662184571589645117855806107602852090760389377973337482868237300956582266424809408016071428723689206714026148606860926984345351835500004669294703317657644869091022635838366424353682884460541698995646112158406327614246951829007023058636970603134855324677551210888080095975749012200585933740872542015551796516455078164787212509435538282931440554263268683563885133608755064882135714850054134240203990185388940074306318084598950349876695993552940519489594262582326648444252145157259313047459928720708661077156989080931257139478396928035620887277132493578385360054839548628293192828494500305461593436441997238488596494011746120534388765975535970172246825933426197261510554551011620209665169728786201209867371464302225802600906668560571190998461933257333728726046170860473747121311952794361109076764461230065431430855166693463073105385337740332926069351644034180957962907625479954745412895724637435447437251472097094294809447930322046203910823046190472651282044291316147567487316683416425273194395154365718164917245994570228860819829366922716619564093462501989028900060478116536618197922600352143910135135164516680518829209955652393875980032704554130032805129404778649129361292610262084834551481088780710880557700416421768262642145699840932531045436962167902797998084395042834994513315176596835948613171458834039477879318950747907643356336172266233528809822781499569995293092309223054568989858849239941215462138814505020097053721733435641250518195828534212650803269313890354143213203849605635157293548456304417800397510674338115974993764690588036355823856349969180096877917698145834582541539600617386505646936773360859387383056990697864726093044422293589303019057617968537607034972391155413349267300384566407149616326881298446870611150471870038098659327387936587949991779595108827674383652654096391705905575581934690650401996792966392505523500458893665870342172709241398117568184450797267277333722018801955743023446108434368254405700818045149228759104767559313674510462985469753157369269916227884816486208300266190193088722717507616079650202341557196215801314501927343837139124594024686463117773114300528666080123909324608460025432926311290227866550825079279495566154976006970413339811310217044409926077874792875870200021563473608964788642605852325961204209774633413803081038484956132227321509482248113841717331436209402857988692941844276141519363043423607181493445732336400261218541740084582490070269312597990174563908517899875854190844081232292649716136976484115441145825763799727370922299099192256879949376626083793288069516897229826450387186922485593314831612828550440943199535375318302917461166198444948825679231982483530804905515641287081592601365507647955738558893426929933421796236004921118964784397777541847464761384728212730039077129492485449126718823963371626389131990541856535371281725749140482788636715609489588078809866478812203708657849319148885842199035575963283949089999813216700592011309613428385478594189385385555249997908515537769017962158500596943378470972910134274753326549802154307577807902013777805941299793322969301158564442548155092572696890975623780390421539156990537105878237185087509363036996109692840283914356015341898376594979935091724433773164508652378849729831033282291921466714495992913591772098570720685717391200490185042838170713988334991197413264891233822007794941009855566763715600803408749813886650514602601317883584119805535128583620641411952667455419222936310314499249743421156977301628594289215092776554409720822405620322928571933906570656630539863531728637939895357721109924249467328276102309018575061258166439212001909736727500272027073281096217303261507961427641380734628646437694221018007948219674914682439260708664262444433692460230333228120879442251054847708576725349837573207299324853706661922112932514073204354407042642579469628203149993236601845473192041215743182862542510422218301057271043048510250832640819491432974285443929281297119564634111979349099984108341744852624468366501485595589933456402211345915661456746177933958018681437102742653773501811533170804052934122345773736694432264832116740166701272650243381117379563130956220551485970410053945742245849142530246127136452136748647435897404636302853943537596788104475607764031671506978208591977787054470723625368549220466761189521293455690649009469921804173167729311058697284501037985116523512324955673629537114612043498459584793616014879088403318323046439359869296589279305748562664221039613778264160264066570509977715737664773238542113828961539777750980779839349078386576720459795488436441347752452280397620583325315171006812733568992691757275984931183829380704702321812519561114553060475857305061325018643081852790108652669723797097405106609060074605752398417843308049930261896781292770048538477290155169371824168950186146554516593111200238291059627371733380108212976505154896924542904913434308368543421253287782696257372919368130592568827404067251043901241181825898715919086463334635027727597012325579834221069668450790723486781645827640449897308243903598370770257957354090929635133122991479251161502734860747394293242266704188659536941793650515140436091299941120906500846303452914073622378538720999491817930246639427868125917989495280404257556645686575101658754191982976010936359735518481882490457857293834632535237467217802533048487475008053214361369851633699190871004200656679767061542273843865444107063374890069649238836316852659604243722086274370796526927564944598102038768458694430910955740282983654976397698231058637701364296086391165325088926498710591862267532422506135652009603990744340180240887535890919933188673370394283022126308725058947191935942859171415494277895334969699955212176772955349105541506891105806868402655271634958159640489763449990479718512825223378458045112826868625018473054586093435982735453915302390132083465916695800007309330669357460157110807994406557490338448828072630701558695102266048943271623400816969140556791999741274588600365498956122963951719925706636340272602556563279732986101779834390339859651069623718880779285597749198865865631463287855582035811554586986872199164488481564413796711881003218040679890277934338825963669274011419975833727401588294881596969204086963373077081220054540819702621474937213157392965838891993553981580726837167098549294243538483846769158363053178433620266193906946784768320143364322025617259773780075049099279266613549359801035756595494180037375290648290508784080519008996729613023584254895975132501791960350235270186820323358850026707302186199722766591460053134351079802220900565332345138829949851505657301252797669957604330123395347380336197574161371043586790887230105418855752796101514252670870184652746198961294182484796303795504245721504235080846273511142206052491879271593175025711747156931644263766372435808132996141497496250477507724710565099891159281790534087847035221446193645728798132378641496525318452550051815596573033755691311849406871091808454180248518776351265329701960144710114622183431239448366725317778475910675978596222818444785400622375488610895183786286781299940809519525134599012065316596683030786133905888678869484379202141222754667815240636777052654992411605919124815300606054066536092197099107087807603792732939844850319568623074838602949300082405753109041356870907198003933182502211681020396129123150986160266584455286559846949748325933271409119210514490042001392637391345833114783881747844903588588650472438068446520799001677214626106955518512521999414313809235313737708575450189961930164780917273692583284852334079696381631948753463547453319679784507647998830379925107726871909785615997652811543553975922768435407820495999647556386577233551140367156028382180065351768073115058718674283895600605071385549481011766011231614802993309164503577376630797491936203752669645619729012179398535671287977754525765584320625633377400879418569822607420491193139078101322419195928678579486884914280109532577433887411551625460626488734710618862841752448255707578878351312898760619363038816073352210434108375583263081448120172396396723977636371826818875738170201833545582815918633730261232286907248997270559482864127375785003726705715228156319037268827051319078027434925084267536246082769259520402659258210864867037930891096922436485791548880492845874614559133113796184814433296131511792692485845186482725059072053484655322878832283925765670728238055444561378727481150593360234577991280896473708372948543067299291114863073150621225857892531933110059310845599160559074001937625703465969131572411485150807923149034527504186751019966151304845548405868369841542602020037215965718876585714295453224250988013145379987023398818847320493884542466575848129165416687382778732116487432991767618829388184926926291582338430247867868304262836538330357764296860239545292079694562939159879165539052817312381354935481198804778695633700518333356791672481549172675399769741410942428224028324142919791703703133234492012543758809487106459254577153640293552953166817495497261970385009621399753632940009196547512428906602340178511822494481632396648297497119955143034265798882858803121357871291741007955616630347489888610369239801320487820090274065154093467154831047611530426024821139340070249678106910067902978845920039177045853186007336005838183196722760565295122326605925107542083803022268806199066499447954405877422078636307228693629172429301968316952080031163319325880098293342938306584934206628944645188383472995209089142165814671947391420520052466745422665096095099656027992326397758804441771870676327696917133671658746381121255621251744279896102342440689475179235165922650538102707039289889141505271796490748813118999314465979355008650378427718603690057445801067012030611692853400761377541781120447574753140714019587854194390940506146526082393204023179370364574517065571841785945854161436392302051537663868803477471475755338945365801562579485785982124997933350201188488897663199753562958199682073677424825264960472042895719658712324903536000751008748673368488127962051098787297423478683665495559420437686517640757194196069139956609184596045613504541665767438718276854351083842676738796909557914360632438748852930007023140561494219912835827616278503171817884263324739313685051625387446834925493049632366298642185337160336392689120129291193559149277375857638586670030819060485920031703722088569167504397136991351606888382128590213358228719531915703686734801602959550140291399428688782790852906200580052972575432239489001356673449018147344829761184124539681392937181957594763690010970438938712020732740618755804307638295040976607990025243232764824416654640202085164591563082439824107110014947398244670140751895373168296475496862469596590046810623809293869881321762178127083885483965935741336942883473734401766054567147637174144810411382589821276954593341475672868395101040737787597597743072482846706839184683414323773970639847573271214044249735876000750104901489906558935787795917140231514452594237491979213806749146550047563340080676678118001880754719017716207244495549876120417349128874252848438108947463579496802249646846964704144945455503981631723004283174550267002257227574055103789765806323640103708578182792477797126728706207209638303636608115998244333802804379588587030169026705090852738729009857116721319311262683279142172890671875136497595078336396403106198316050758266566731641270707285241382404730846841435974094088854248898006753910823897401830095297824390862135942248678728544189982883150463631812320410795218603936426952210655746572504610785222390843889900740327252770170880347919406590126471868883061206953820225515309755104373711862422566324425739833209530076417011745221120412833160067312796034473346147963203181665379413372927517205957913326702341654648851768394943247741672291707282869080969787098067205023090094138327709348192005786000916286152860570607653886776114033013449238246201460632788409485597125182223758997629260347066038295248679161291320844895763889560348414442911097827065645044329285976410098254468922409591381990251697803011986419356400296577135178428405721421943546505490413975826252031683475563144768650729651237940308995736507554675512890058605043150137701191665444222917679148025440195426698451066845480000864318307011780492679711505535674988468228550081990397467028911126622990977085263429395784686164811065185805686873080580041192281136905188236640925295785885584057887196704261402934401196904954505133390029960550543872047764670314304045669239461595016257883893747487259704584420062554243581583532688412651252111992112448870757312195932097598400896163069690215255603438793749279939007790102466167322558787725611249638489329562442423020038859508723780271342064273964586190058895770331967931782948243381160473923891603431089698351068794015796490114974825272068101905807608321121305544474745010861107174830671796221175767960770326003827786306672999657941674816053548061935165938443395006062454701827365828637248132203900688186572355161166440357303647848208153035472405616239897969559384546618629597197627693852109912998420112776291173085315210134878021036016048848552034096038545753669580978211755571417405681421915316249984781411540803202895015158048018660569299908500441437865071215037944896222061555673085080792605514810137076474686207744903113615418763893410345915948982099944001034300378269224491904828024044913222491368402981258965331237068478521652438592697446329879629228525305273067662355904174016018615009463074687123648779697738361878355759391251378242000304397839779991919015567000143005960420589305809436164295903311879776352201342525873363344873428371607615088418243046405958129470056509115353694286153587681887452439508611941683794683922266411142195071350661344453542390651905706534023737665843897704266634959515763725516302809209719827031628744095711008185101827593697597269274266543157631773837388682862411656545536615090273285348339796706979996006966809015572474552586508890903190608051930493447453122876783897177119297617697366410508058222388269016883643078741361595213302718885129403416481400348693913858498586172273760896913358947807999927506259694014534762598169410617448734057865855342902059142894944160063657175049838262316857354394055415244192953148723297958735698150117317076933949891749910718615610296310652339973636926772930438532666925047603397165859897570518807645715940735317371436994120441604770010509556141287519445229284478152006349395868141928026522570797474037697130628825021880208338601920328693952930478247997787845246770926088833670149157955757513207895710967573910316152540704170234627747221790881440084449377455885832301017819707943868710117895260227540067591498384429558070164297193133130574765363185085754788069183089494719950205215595413072814676635698573208374196389887479817284788962557123881493739181115656641383273184469438705959390191904345302778041509565818390595929666282087572321130512107799103154017399060319479717014888268869695196941366945446528154626307212462595172742420286089435807037911790684672374507160583447641499798487518333157227549029642329442072438165905316591201204369254227662714968384778318712547060908115453628956840363389477525802361751805634534164048697711759155768165017017142154759004047113271188317723198095901252855321353731023451952656732866179934291642052108883685664327287891783595112706668527060601705389611834030249824958802958451117992131634375353571771888693068222733791843062155522220580359164981498265920201383575731334088585055636083371595329289882866382325994121321482930151267393691920388269125075372904004365150509003766962705336623163338519182541246805315076927999813505359854259798597965949202298121193699535705650240630362488721139789242437288746442469778674954162526604595905764389410654239149611412394136157417343827378606432253522790883833130458914127648017922606873672409706908177841674881703275919470671177324433386923106958996016344138861134499564741730702309159711645652891246040121042658793141238849938206868541473685623962009931297189168771038844061482207063279864005673556655616528624196843408684648136356528322170413408659655573472008437646538261826144046799652024184319153784122934577575603832078866210253007069099368971199304017499454109997934549221940067478314416801524361136375629014408779341474413566713781426838636345892405388601106168534853337074110597872791317480788332299773375257813703560065833341172658976873265157928525871302267892673960665615752997659014694334176780640805139765379523246419282756589574208142255987037817325532122775763254845477990599375702643567929366377187318412207435376360746092807269824957541656188424749045890561110095193124780455505815479594271497671372793478200212811833892289795919217979078684903978420568973470854222347115030790117576889159275953658347203630167502438807563686911839213282925929971876542959517320686886807851390780515935699335107522872839733444044596463571044984030126700915748227857060767706996430916747061237997030493029041453478329908132528109085809583401476220606309024485778434801719356114303132428465606026734594442579034667947389103549872987718888911533417730815318837717899530171203854033582553368701637269208986108761761689564611582980259468568728435346225140759229648913333172100602676478895081479544344859441839744681402563277354799848762158843574357998764670343545360549178818793490780677652988983200915771982000818860894550496722638168695164431694829585798649654507559056004906949826929878336525676231316777932862504383736279608277077180011475775021880415243910999555047265509802600849474914735445235104652520660100558882588574347426879964713988794159674620807154464049274742462220583751411373689980610178590664087741279316109311511426476295320373367677147349967375149449128358178133652774267155264038097599639527557293169694585661525601406502196279590270407093383691521756702002924941960890876282094365773168955828590399341731089578651666968566948117386164758601950256013558091564467565676408215310672283592998542196671482931077467829629647887914314173884366799105811848777829892178162181706351410938812727332420037474885213644272409683623839396454724237307891587001342631379090023579412116655832122450801522754585280291380567204522233625809296198119922241208070899890910656477841203844806586923438709543975436707805597595787273276072612862560641442745956949235943459562667242677802208959241280031899818945706000976923815562294741168288275048239799994327246817903614566734274583578203556280505202866964688191670864514349406219583410010444221213733242541783630297811311906916411668988601418996077028792529252696781649065625027568632165631665422539888661221620648955570393314611443849188247669423220717722735111966086753874039230037426663077721798873128144530920810672301172868560900579403020246602704105404728323910108717771567701877358960613701380012460505467845108216480816193395149445066906554336057609910306215804226242392774019728725314905443292313952436181251019412223061770841294215179676665257067771104300502795196368919417256728566850067747731789021262926233574190322023579364446118160376691929524792079848668042866020407810322168854531072098323415814990893149377231469297946323105459977733688036232660051477427382257939070755587962097437510228795640374927892936332202405735674659745173831102865523246854835449176816715716435387850491091971369685287000737043858693311330854986916364661917699084119660776503206641385799608792388376937612171367521891983579147005325407092115792108318370114595730644343082895703191375162513778481844306121567220226269921746562344803994484561045654939620253081428011510690104944241509178757357827380397769250522325336336836665126315674195104601157953627857107428880848453935627262270772220633520850226404993961111648639364145944319294530080534039870715173368251102424626409875537010735012750553753565624559205508752791686600991891147617906029942179158188780249813687158480712667664457757894095788583105427305965590269702158986080166188643736811362491323341257935393625591138707211315610050818956726684484837947429167808744794496614686062360478784220191731429416284325086664232698414396510558942300894972947445984435277166478511202068128275426269845555091744180380172243510243236758264392181789473103255021715008646289665396775796905050105065481756514350646655786295256231183288813223706028572510635368081638597081419774168578888767732133150102880336643907431664964270078137666271288814405689471503337427691367022964921862657844544169457287025951429957094833649973414286473077047157393157136384662429412831129905820948426280160265765463156193331112910846999742123119530464958027342709064038305584054690465638453981361103780631881845842389506816200179684330774748612758117699528775616515541379865605597216125354133327880122951087918366129806320939039003648889182488860579717192301618416006788498442857383442234053310542172744793108982909892372889098651901737989061272834040396484045132924209596148038440688057724201208810044809205503179202189687724133616422488961944490828637214035998109156128729447091264518959322435213986688872983725735237133766040849194025555034537443478286459504650604129935397705131696074613668066973540676778366704656687722000783778377913782580280231687515540316870858598320728901066442633231481289526639810243475472945000154492078690182251329550816182775183510013145645995674661925418858815276031525986693888594998273578498462380870377938931847575894004168146513689135788359548051642517631211515854912894221547843688872239395794044592479343099132281403691103508926339067296794860806383091334039986855348634845529533509107073232055826467906062841755148755619378152833710603084135324752830784607293956209952881708556018942197630223405787929905511732699883866018385571883430093415215748463536610147330411078460532594495939810192240730947870273701589931793111213371592277867463199387687163789498183393114600229110826859235189538228145145432250504164981361860279255628392315135613728864332908821840731021620869955838546188038980346334835171944946969138771831571880804295923402238523680552534372413331168771461117421062812003689542336442517052343300773038202712970377712006171095432829931792545986980651158549919639342268768933085002916498342905003791417847756845879676243408520819134149103142317747077140533361539825719376884515684280849917091720898793774551807827731130796328754070435045894503481995221124262573110914780063934755930154771814448786588633745449297492422218556427629985798185926797647860338512889248350693034650699150656802134013812921004251343673685156980264910588347648951375570821440885957111963943496947718153966705887984149181272362975332351118505267134184376984392439897122694265826179906969688527666228077043213416574376579953242784819196658295934262410338856844127314292253648290250659004297335585950402946742773694664973982783585327914074353359707343704686833973592628766675192967448951477510643261130288072631977987392261564998603073977327933891352810519260805044406489477664013863250250297500741003788205296343025357603561171382835175333933890973463566203598408707173260590295627427622270213489745217679120978767471762790993332836536440870850851867819982152938894040385454395550870951173310576254287883147634493659162432994604693798491433081107064848411213295464475296096436011980811917846749813783093878447935834949376723110988232179695816030098669039478647599356168526996191152331228262166310898486619691665991474044414621043713627527835900110934034803648304016137407133532606799441205041970264708395352156076420350781610856413867795440868809375535937426907124137544591585189195273610085850505063308466746106301916520271386280607213456424396861666406516473523545973366249511699487329171565251995846053314616272481457329406839865869486646679900832061098221061934942461832127605090421758293449555101149255423667774750006309403106263149307583401787663388944807204707217034140458946125389239432308225543797167668016348453362665301062556707011642392603912816805368395466684190838220346882290382469166710679895362740529192701873031010401061399365376167440777106070702264705828345920474028192432249630461173131653893402548362163398532387268066251040723081838782707379801126634873487509211385924947268005457476092975757006775288478760630644484595557603095270735901513318306323945590332233070892861586356708482543816564188097852129808988073846121130981398152592917001555722210573653324224077643247693120319028411760345838761508377804079282968474183702910090090132933114394307451257364068896889878939285638772981766641429364879806536702992491506296576237273543679765665735232238272523069440817840258945296099948825943723295128036602001731224545220454426789798554095340769825504764507832469655156528031802822782222886372593515644779808988027992718125926229414219675188484664984833274489448881619114029173917423171403730686255968905391947783819051554484318331934545520041484428633162015998088099874997724818992731543506273765767770325195666458578880003998436769626813315982625001471919672244134090320071093135578836966389515106584929428499545951210936874323534659901462281777368224177477579170823219673464432268570861172638870345055043748328640073608986455347957366156264971439797539897727272090139749675836678999911609329420250953734198165607674024492517141151182447005428520647788066551541129760427508745890847491878456464823169719892530991382676944091829560499249255548909201681841968769193773700077255266198422024184767502833666212470133999009939584106486933245617277321924765946551483846721525403689945720621169658351439398704500942475328014009805589880397155042777171085726232469523986692071144112958687059520778230703921093014264476203626324212407453337466456640763721005900766038212572749917809263013610305004236236481984255687949375574999074748904055129391004932542443605615585290310132354518616625392637626448381315044478648947748489799258659985621612782413660837579099927645853132280044053095178759727486408808338308164033165011025241429816062431571943641827906808687009983300537555283215414739586506050805025201719248677979505913015317309993511684446527858456001959824698100234463458584505288719345075599417568240449004204625980878782277408171927514146495134081681157725825342534402844605552003823926530341797539896741505394615733435421949012575992698940409836874707525011963903200864905938942770107057504336690674089152268736846379607910938834412609262280569828655997742750214227691006685231015671620737029598958420756142003351581956569423674542915066198060532859573221521242750753684164103834897054643425542954780214437603868456066830602915179758049586872153366271268456819102815471610549499493193419744605428816473365689959733873529151518867360603123882827469762567439625620575850426837863816306134998265901859345248899667355119358478887295529240580873788303010450967334682158151296000376510829220183827652711880243677743973918037964951128552587459889113489498042495579470393280059137063838364604120238642402213823778573351682920573309121823262692361251916776345614288850917990126531642321291225191515620787019463749438447691342458508247308019105421161642765250539953749299357226931539345510276797096516218778017841058138836101766173921594354333087716395990662682889966425936412942252095607686749587697763160449958840265448716794194924400309871560304592208609613158811241974209746510617252292156329135927391381796968767863528642398619629011497044501068088324249260356176420900288024461011309980679032706948996319759125698417434413822299250174209443216298696379545138100160283697478834278363297723986174898836817000193205584820611618486660801747316731501680505343084291932387033644796936684519860412074537303115626226568855969610540139318675151947612471136930444095942165416939898209689983453725211155091389370586548037465712278588495154782008753462549534590300181933232072873294606363254183309383001399172208011333872195818686453275433606239643775457022305423536966191069644449727500208358443488159385635431687455997257905368364805056843738570115828958579861706923183464850130723980861306693682958284183871787029195234429936734823995358136507352114520099579205436511358156415240834425543088209344555880431561650037245964620125002081056558199348405563244683355117456723971842990983836199530514797357532765539432840306690665340165128238645352192105342115735220445427470315304569811872923447339192317748059480642369247373952405076634201907258203271155056714738817729349374155784379912127255287956437836357992941111933972084953249758820188046728441655479518480118408669158055584943204163302183011043952489045154900725951432502330738516709518291198663064329902436856182493868685251202265394068613876709192297777913552419623365253729318322761803431448534614151040641518715536842799139982232616361752878267250553307776570455655166277411080061961154957184917743062283261188643211983852252997026648150767195224982558659935729409142280976350778315455722737881818389939060849330393616885504875606988480902751127669286775238857615212058012474744092009685323084902789829876646628604328714499991144256176656315818179041598158226801406893766354487866582992852594623993233683838159279807968834746645295392331121866360712359466698178135336127231876927017011235990555734211671121897670834676774781870387022391315091372641168434911153637560428106568166213413015738770957085522900044885735252284691181337338827883774626279904711159202534208123025727152014158866556566110429430760570697345992218163489753316444678566208494524136908888257763296217000288653892863245608264160306247445275064211725784988623319295810203998565678860530456535224634403444662458642668770638502806840988663247201376260232362081616413395599063087362053556109914503671181227385020305339533022891263624460564032232181448814415322509717123991399645010465930482471292611039649948877759607170622256463864710183087838657287046926797964212299710984650416824727070816936125160384126472136770189832719414909931221518750961590509897053388294301351918585861479472990173704314712469647274244960436352879822223349807904416236281018009848919482435279252485441927904939263701561475257462057253098462601746097848987029160230146974984338249068809099025865048728122085026535215333942980089860422108472879342844577128428297503063006889516323998855734460494584185129195688289624260523467884243441909370724797752265030202640738558399124949803874514767324364551895745265974198878339051067994239782149424138889847296617876833490318244375702769426192901208444451521470060322500135931578594451795318876293220207469860401670891853960212829601613812268522438704220444010203808718582413291105313696405545992266603660061567465701808215924845068194124804991697950114230194272179063049488507485310362890739567493435264533557240662583173339635682250946710623425838519263196827113120550758370712921336857557636699548414372467313751819147831720779000652994767589847684396296954942667584865280006393754527027616342379300188351659208576942693230789480220488261071552851433193934899727475526622753618785032687683734154119029035538922019733113605304656222347211975154555475848397610495496733681287609456297289133020988683004978613258567945834162575027660949301136110627193501738113606977050981136131828705179388790670885166294124160117429283950809148273852837637914602939686011646669880064133758501282593876747416123664316289056336971414187600402811851672238381597624587773929318367971748628403303257792647549722566250497434087057393991852889929617713030245017795640180164058383400585839613840574505571571291378818797298310178487700022616890543425681877276985405212535817086875364095634172434420852763415571693983217606100176850303094282158218870193751430618512250179155980487040349918691545308779567377778750878270352448623370909727076579263735985306291402304672690359620752771398194191228812297545533401495718696305700327843370232561610433797380568131167126275940423877846703965826585750108110637735443012183818177580721850484698240808016238015800225648027761181764479888127024062861146309181144118134972979977416625030508907362976977678308150506478028212732875675134738462684973734646748173962303816390001934059790481220930398407208628558308028443102770990520945058455425875684518616237399897826658615541356547948339564113460208800814750584355697625215408261973327045137404218818163023402252731254780376659364334642088436542171772390540569126002396494021462421045788896566276801460205861930427629870111933595360956897128983551292027520695407222263143267881889230657867271426645410431623653720537296411357786326520117409807682491976095737177453182956214698849231301201994641824316301338508859110893416920847293126007542715974035516873938605844506474899534708886555431828658618468759883529217838246923804630011061475269529423681068033233660491087394596221115568594025374436001995828492282374004779250911694294698376034425039180591485151659220464891456037603413420796704116382257369731396732760525485309166124119417907841852610340732417794456602568483995709778021120532307809670777344805583713676388513095974196033785399574632841643553667829030382108249094443188506480690029787705477097688116862375599414236446225135506175066590765549539858677859492688842874251392884273970866361899697399002594972465226554528630999047170560428970803976326866550507896836976536691174252272325747765292318969663164709300844885691119575824972285796681438668681624333877160188461746645420148738897169780898204091464651328532358031709422577169221290844135462525908513606006967795777548326622737868387244341761977366970886473955988102769197688542801661907717992258647809881273016994317706368317709893906221001754074719136073949924194861317592980206775943465911437877080328356874748246328683291596521371463395544638353725845696537106116452575970369358193378593453439477429559450027034907796392644063747105926609482699888205386965052012655122832422732833810150842853394610909219122106549081382766926447091781740787116372392030070405945470927984984588806022136046006033077249609617627024077695825354067815469462417696139406349372203188781779094114156144260899312915562708901183154892115900059007141996420341644076739765670892020530724488458482067195263767424451323567959258065198772980835610859397685510295489571562561864169338677990923476977040829346465672208090898764920718862783323471402471461437401358983134322031396021179864062538532088902514278319417792215569554637657201181485312658154829571000922123309213743828908798961607307197248877956885620790721859560933983110900422618765463328937290533613062238938287694518454381090886592191304328365971253093306873744500934524426274081000834795358225132013654936549920163117683318392800190092909407310516341591141208875897660436693354533648470550485858396316926898414406342290899069014021997433443623187922202673488684037064570748211856558240268482680846371636226594981377535144850121475674382625549786617243129734772947307584808748250970629739804978141030007768465504770379812671740031185399686065078338487821082780512746638819982225386360780916710316146537193419606904968923677275647218094902586563616842720725831586895574781747004755175325480866096474854091106125578286838518920982286035318093424262647195548252882309455952775447617080731741785054784329151382060307566947631247629379823560469565375257730813314461752156929768857359048588559065062203635161779754657880229542837978194047231923386294186705056195364663240677617496415890026239681942331562888049075660011466873887778683256196506027657241022559197585043927457438018103919909210416140606841301470803242423931489812676751832251929793564564433287173344876127550961933310371107029450224196634625671443263181507881177265753930516605655629875391798079506178286183876648522941862185136854521837015012610933617714146130148634612377449664111320693099092960353913264596045836593577861881388699615600639584191773018510150014093052391925370253060666548193993161617455251098898781191023402722834631805137423928564594581756908369545156772918488602656191222711571067030726612980006733689264702606791340562684842261192687909181452826442334677279107787371138547178571653479325997713102154454096777290652202816155830030568213106510516697743576022576450314940423567188878409700234066937561901985271961465905229715077009437768144608698863501026392165824063365223685912144964549022340917782682936024992338261762895968673523979300361357831977351348959059040856238674296691841296689514982444954911361123977481062208909003025201310224090441081282989423563024449670247764764801379375258069985143796832797708242070345410994418458326835023064465968944841949300944433003310774951658756762361696887247597129436152161836751836960987707038332608250883263238026270036912383039757158544806329916365769105368409756657774906306325651304151365262152336188072659694298227527329538697538931300951954686202955882529359267663226531856183690934663131888212170828190745754220890955834002576607506793412376578251307560924808623691566283986306936754567909590372456093194328359973361914869670158615938807534314225185271875078781782397140401942107983345683612938935818969746840153106743787240486217901107143759766736439501206991394318413838447563724725527783880960273382564222152949770452129155134734605645749234659410228328379903295023780910932237342363515421201633949472428389533921635027730097623431367839560783290807877504845748000137045191468707418080879471691211636509490823066973263581623292299055348053398417710078342414627756648830828962309615995904464149057223895982439941269361933885690885455178094773486766868124763397468292992219023616448912592726227208569064326611117870470526603656688147575512082226705202823320743489747220366175856181735806717833846923454679493163338526893925656094024001648602288663474512638129241267418248595186889754550581967397268724435908538111381756420683443797807482965781347221738441750072347597020831272472686071643739391007507890865375006348163770205369439551732293103101970394532689505706716848610315944558798228364417966216827592554425431509611654501244961054553662726808812986683608412442679393116228857026019652161396529385513000439841817483592810145219558179992368353730100740508413492614817349082879307189236736999989657188814435444848370680377099503160071397067944655339114121558377158193043123384591177292148574680945853621547337680911930256304316154175042709879011312742872636698325350203233761466563057823611185572469313863415045864479445493948259604718681119725462170426549067201631367308524520236850129780372265313593707904077980209472580590512150437357801707077524488840673100323425689448957205378427529911554907784416432659348811515094517075507192958348479394578193215088223304732666856591365778389195170447900546457529580811212014385316034602138016383386993496815480377584552627177645970608699617433347225415563766039689463544078869677892543942318393727818184997281552296218448771032932156358308045725271030778328340654857254240141784438573407189224665646417993401141958687960418022507395030976015402393583265733473219057482113404749269511386859930040124679396533900125726494729670702133151197308855770687453829946953194647959150336377708472982329149456038490356147894187367009185508977883198095825924987005750845585415961286168679734183674803502331804310615461287723868135754230374783334303129066471979742891770339512132512977304014717109793386310916135273035146039896445770984125441351883725669552577774541240714902860097356472731076201252433634909802174183246277883303648740172183448440307014058454997340179289485098291936109361912947102066209913981221918220398632664054793878006928993264199038699311916025503861126464748691096098926182925357279995766027303401950069564409858684481778570244317245638610487523080774216537806716993555563367343713973396747389014492497793961384783383945826024897534507617339329726899077660495607336249631320395359606693925314917367966013279220144035568094463044934360845831653279940504514535602956422822495936361391002744422936144341864139385266380444489674625695927364328324640612212532905961720363738521898550546361638493878575729210409057186354977514572118449487436942471446754957209762085977697075539975287296426677185298762203249416444278656685895020041507550965449840300250685704992290977952898958453663517413217590571088007308095312588807391955273448255782518295247212459467566157098477401453230119829109040090797708039769185916196183748883391966455051049600161451982483786671292304222546650689692001866372782780646613785146205727970327845854518883943036673010822246121803223913234575964507099005024241764808119979610657826799979540915600367463775305070017408447440146038609644273556077456887539518971790247483253589543144120510202228516677421967689906734297978650983515554997805799928743674599123698385871107202613522797729758932110878035395539391506921278504566075910612449432008775248529605398910292594516126959080386964346156764279761353623210893706228377594670416228657787568284150964715976221229979048487490176750640922717842610369640419401329016320466085482730820711929294851048108414968524619232159810966048708099906219091938214514664178967110085673883867481014107415086481249842086841035755049769192848694739182231362798063399022426292752431460448754063258030056390849428037635314451231945320296490614367000800303690595841815503491028554414766868825646261500491363410444016075257328008732741367620621664356658019488114698421402501327568044642587187307097996778178512839080698967213220832881619570460615697910093733914768824510858227587177040870911601453848723890834951722393307125420014321929958264416282731747571253287096063477657305541364442599861771211872670924478641082368314544545144937572333503363133018414240215876781999872796670948866441976829717178774380786356569593607126012366578798194143762763349242582246927600602396711136653915645990106085436224778999954580210638586038374894115234188864604276678280858288534635429527915413387493853326959162268677927024022024675473871818539107038730958016079661465612899398192777680354382155606995512685410566668688089214638196627104644829423261551037811160206266137246059872200725561572918127225946962995907250998664623753142652222505743433402163635887678511371919384280836083822733502348970718851210529164709822345144704818989375885504784157493040592140938066644991970349705421163701627854717220464066143638230969580438009053067945326052687257274341796313710111652368289284210709434034283115992347972918679941325906557329332109110690373015033538817862956490935508920170481493760357679333782142332272236396298332310546900024944370515154954052484110020594820332909484110649213794189047192524064358786959390689751138146914020291064452394863358334029727320117676756696948861575372788311038601535347096970368399840301533021811608484642245522407475864970087626444134258638377847900916809970113165322789004025914268469886518575774971369771566813227335105201916571095348767615061103357551157542707070624777943465862246775915863425288612001728512387124394239277298801754491504333812790625105898978972283882434414275621111756754774956022586089859870463100976712685609114535619811558994965385917351387528430858231064585173379836981420530640376958669646948806438136555953357629976491643633181711672287951496559802362410102704901512492142052851418139594331971653605984435117728068144114438474478181522405065764895171410764005735028244966928358809479353710797985830971807227773819793772812934392070156246048121789618023485559894768188848447772007413531729704958191242562005083145499415974620186718948208829251507101094684387036922615372183983271254379980190161621653401760742962327703167160714249296244966430556595384384362513639709999955531178686302010326593557550951807111795351037756656429159365866587112202683201293362105532846717507202556887627690812426832599322152258014378615773654430072144727727806453065792651801626797924581949765009958385716623056210926855237306129720678758162504959894439856713440203148524492372282588168085296849313040431196545273292115190705179373911811557971948641783341756523547104020508090760678079118503047937258909363512864799528351409557200593561752234428295773587533769077485429045285630825014659936610584983764328691883036838805107842456236063599127453566652510264092187852954894337727116818653946840517769060860186179190603433803377321636284417170430749533081666887916909175985076239075927870697593198617050817500760168868166005530169543563301225134137911419831583804575505819064773468192393107465647194423150331309329236513895054744046459802026642738033694857928249857308594777920853285432212265223031424489256312006573934407617164042193348679834679745405984890961009377746049300388233854978231318058319405073371346270003299658968621107711737843295528310699577025343715521942229020810921004564042071211474916704052407769302337959204558856585383112153146697002149846120731786136920547858677760268320680398006583806731164027275973219636867815468744863674352407738481770945359615636575903957210278294616997906838302670841637163010112540128260691495842500079799934647671488963627602554855000050473601414477783957987417005035657225687825880348510838976011635250081659611255840849916156238705472871807960888388065843624790363572403309661519756770157749529619518828682306845302072294001677928782623208101581054366511380974771036642665570625758492005616073369393030651534721309458886979568796048319925805320301070345285535509483475065370464238369916197846675511704784855802410425570432958466722607947366442215462785292287312652243258376265616466220368829859063918348366612871411534229271126902488161722072007343572796385955404684864941992094028811484038952074349825964253111618074769921992099791239101807443141341153466206862770200517173754057072570615812254488536882838696411426451436915637274613235486899203919305081876993419361483932053526587156721122384514722374849893140115518817327802701467040172163749077123722147108648857101571014172287971645569482257112054523621853657149071764620840227317607835368349090276392398359649611375816689527865417108062152483819818664849294694414561070707861340102063566867219706563979815791965802391633391492943221883688635808093651285458188675192840012025718443111027149080465077371479854074297539780241448917337022870789453769080503907097963134016583441092086713282126296791090558535559547602830662761404186463958170927763854628304595674887291440128369581350233603405366508897471353343614362859624656577303130033040159048194067592741137295218699333774185509020535453230085758335096723601667225485596122905766422474655839792865629095081560442788207946776413354235768900435944497861143717142610285670041690886731235389295465173917132018609782339747474264172654791399691594171940751431388344762622201640791210981567679212668662691852448656505156941310527611781591521657902208996879821014638921164887566914716222325145788288721616863075461472759830388228435804668022376862563604678886724368009893993222802000137816398627374818776898441510262311143132257248227438605235814721178411913035427719550041122819501815706976786155488011610246640929150932462680075102896488868553053301138078248607321356671189333825427886458872371362589315907855230716105325174343268463411130415433552542525067389669693348248315592906177596210285099765661636907706742863910519404986360220426112626546166630845989643608515535306529798264764020095079307030789871547243939278847570304055424759501359041702045222438523559006381386144167826511277795658317956526215526027855115202197268250244286472487703273721187355537515713509123648791961775697140860294270818839727875708757185692618720500205715884049908369126311585687380900597111847249322506940175542142308638832911031678726118837621569544039190153631641718574519827560475782429595707590507387050985183310680488592273887636284044929493482668721133467723711906728315194504512196491723229242433872931523476166882947143152776925989332400935421558598892150988394161442841341933167722036188066712715587695414193998820745984987795404324536256403840412355544853214642247604105740472713702462136585625031781321882527928728690733170318649698577245654549805934786267116552750302943208040574445437642347722388115389731923607601909825273382076666717821314600965387713222408925790743379092296885515713625845240355682849620825245869261923846098744864400728688892475613832288050074661961694281949846684682151518962603381687721027507213546214056272461110058459516843665107758240459870106984942640972617859601088188326214492724910838068277192778937206272407927072174728211558640319363708757273221023531272841316967726049254770927625293999991257365739240061173845043743929771101139453898181622953160145269227346945373280819773779624172186129477858818481333795190515303522641090845053786404841498551937130219084874024830727415294693148542252167080613858204031805677193916637653647605419381542192624366469724262788614547661660535520055567980154629107137181770077423142729635387593038615362710200748464833265703934843148773262338136112213797598296992660157905619701834367432582340225047734248875098860671058432975699786371353014715881159251058836144734142068146660334984614863563641688713911251125814324996799779016590314747530020784899440613158376322027639066617787141378176061981898215785276747338484041572395755883177058598442480016859915441391504064337006661896693829987431033910055434399266895029198885278073117851617903247772113307578751945083656605881864986652924546497662608694991303271104275233231769481464677456499180025971699229898672662897603812806930735291786363123298097094628803548770031692270768818215304713449064600029283735043546501528219920737533541861492286542170050855851301398482322488841981585686052686386643763484408782052478130036309260432010803292731891397394647413944580252288646800745488669963167620708787545361439542546858259757697129913356741753830779924199746755590858347902330055324277735886562604308131612039572757128622764749156283340166568825504785209499898020137904076919545360491481168265011067291019216756309742827457933284977276640443340602654567402052686950671555254304989824274845335718660425856719917280519195278353531980187329193542894468388809316101586244794559006088556805338935909877248866465144090891950059226547112779749683699612752114188863076075889630725449876206134625595651894619260879805489828192141763778619871107119834160309085900851197128772646034263654913265051037496394027114653777337902314747080932461713408822232894046268447102422371163637120085403573074353054351119126448657520761446288711286590563393997052135952288310016425392268548405069276641544703968879958935825603685495891643569268242417370006840894782412630837610889370064891054540301285176672669132216259785735914962686365901286617476880238773057290562196910646938767582410317170602894917834813933500151551818784178459006452044820793250375726484976504951036596430720699774440694315665894956220203417075178141665381622519071131712933426342777203781862042135636034663905350678110872289377496439535310101120398901544512658255090539291716941242139525794721846284481760451111703520077152558196842541681409429294723641266246414231550893018862477972401801420978615193882029259401845012939402034489065531074200782168840250838742187303653900113688068681846661058214704957562524547852096871314339130342312833311374284846419029787866231174964566681617866968934768206116445495648197203213000118912468438481448998159348871378994390916541169810610768661523588410342313870882734823645788771294415191818045134886830909453089172912706811218638234231030320040675737187644217769535377517142651927307962505368507374945533262747938129666811921971429518291518935149349499916294563024565376926660049006144861482268874762439172378095043172205912485057304094237282678684204050875485418669289523529756165333970460499360343706486422767260262022360347529374855199151429597345761380023291847928709010816495587082911208472774073309252120888772835072542551352983322615974133477545553263055282022590206383218957958025141217515800338215775584472793050568192713107892930332587423550786947743432796688473189216928217084946134434953899695360944891890467060608864385228616784345413547670427297347543421621770502846186951939267296427251610467647645950453993092075302887391033297647108359964933701402210138796952826691161347300326554287593938445362935195371405508681676111937470165714729299824149625133155690450041520009862810270362594349595338520847054618729294621539532054094951915195212305425376777234693868430232215290990359175092091579664250835920345066221643178243765085944744495361585417146774586054793708296524683454050418388133975516662670356025520067387503662621424827201517148518150835277183988959570652637826472706894359806619348076281180877296857191445104535452669097887469855296689910292915639670483463726912945120772835882739137598486453140647005593561633894250139205670883628418974932987390913053092230422165975713553703937990434800961535400188365993533532623856374467067681665998583945249489253926907754331524159636146516766009324676758179403505317460378908327282015776470447368275250686771154317898742676587590987406160694068305952316857325513585718453108262022191276929472896443028934745712147736431114055863745416035026570910253600272522518863279328270257737085078581700509124226481946840344393228580401861624136166389368282822816243264046338669798885261272989049957361733847854688896318030179165819091690842834082235713649475071258132294991536965603849856732179983810433331109465952034970657968690647258752252258400420561856243355865730105622490107361842562778063339600107049343851537319982015629701151115964210858838559768616182320971907380568780219241165095013965283247669383382333368474648282833317378720131260839858222660161028768041371406927586181828031627218082575205894189434811632473326866606328525644243283448649761001784548642535916764390425035360410414524714298225568288487341287110315739765685852562862240403599337517315271678275682771470829273425785303678029393193469367912038186951246046836787217267310217618631347036119496669704771990038605564765250445164567805206666608182409705148345378367535047082147433094789162581754729253043881486399877767685331799418272427813845860654374436541714242743145461844024717336819634136411921811480937612045985444310004277258497421103771870850832355249596906074834042161083550059278167666941047697467079465318807667555588575065114051936138689675213448654067065862044810179208551343562706326289383127819160801985403452366665518365498015203150002235573174215304936877922075077513105466433158156675009902300455888744839742823725975930828112240369916478866242266509952190119839658563730253470511307101528990220855513617405465041550538253051062560304381147939571782355152942743728018460316880589713552274054682506351987198887121945831233035648057678952357185633237126568411862431893371736209327536429466407142977067616634089416532948844960379623046343861366131315791963524659059202596747611222730320927040670948150534429999191720371145101234935058266081080941166916639598420857301658011684842634963692298814298960062317310511984947343927812512482169914081485288329284604866114728852067863777582446448982484440765965427558325994724332256884552512806775071806459002184015393133817085844778279858102818005196150961847215405872955713954004094559737359351136586999734637146581624452882621668996587633985036439571411501818313137423997515729200378179212068910957232532878214238221941508889018079910597931182768189724572312493565884242913588854246441944916095423725728169220381345313547088083204217270548871001561729833240729369778389955670090396657006460072818952623752340817023943531351419562946480721128922590634138898665575548882769677426028452118545100016408780995532574480128529395917207715157147082232460437433320570827494664335255637192554656606729974965860479565577284715963187370060125348339434210675441961946740786354684973955355398463906603603561209958752551480011919495367488534593323949631334071085982418123589837734654538780603555149693516348896564757770155820683621550869514636853924163289594815061153661541973080571542895739376078571256164794743742991094224845827421197507067286198178562084232213824041204121876451511312130170738347141504493331729917783808076653997114049261009953725653158002266018408711376753627401922680273325362612285766658895697726402652921640079847683191580811202224795638161328531536114309667464152947058738655857000859782894934139339086175181578390594135963378022628348698471093996623095426087710111380906779627158707936730040302929822842924226685699024058167368803163293617388994498731940859374017315326326523930277323758824225685632931376846480459040403450941517279189658984277916530258377933622215280556170382879527660553264485633484238692701147605456814480598368314524075011725512525554278309795735976497381068571903146030492588975401025957838906215667873507511846825943562987987106848801864944275326761482089580556118852708319947565733946485707904910534157864194573377190405760498494968770018958257787884944149832319330947399576975076998479856896852975528444290731913116508153483231090189415337822763516714404752540474176127282237661903567223693479344015016563047592481741538837969000821651234590875010587350820461505740077713950328471582183439883601816222430475470631080508618690776225883703578004090991880221245860020020892704414517140765030285626508523394773716476481464727295319197867370235855170675359711321780091288166607326120720302067953351063744617170043308214887984548890441741697300679265783440856958465309613454698645128960914085945380178536037166113985102995824909538851905718407766375256514716730185336856714658268802166455587101181758782559660589052128155331579609463716366681854247092610194152871548716814876609574898811391419435226517393999828006535437371848549362536812262942071411180242633337342155936479172166529736871360702357742617100146806290526500667215476113485265700480251955441020628780045610196886476467775587668320251291590716946820442128745300024142094378216356526549367877307806705239724700107730571142541535951399254790428968274523285119882332133123085592152409941336173135351316646564269456654584077544310913194334520490462792837277530502360273635452987692114981001563941375814376963020427715573869259937567328928243655353598210930413102328619189322907785139922602103124359688741962788074177138698792625833115164715678727161924027144082549594383838165458516365832676615906237318356094502384599744132555361474816856656578428721995907950317221268814001129927210205268430869217614740058559284020422362053990994012839463024207807573780921683293828596654570932464379509707658877795141005866816566310799390659956689327887004985920891179890683925969608610554353681524188898740516387582602430895437396627909553841186063055667791418090738222992215846230918159100843251956116737949834984543993004862537883485445753413307411580199740868759727916879783048967757993985632262617326505133915810653150599064757471359165001550578289200955868152907070320480683650468501889428566425077915339322754255026898557800181955959663531868634395300481691601737704998304854216473151380539073257846064243775561591424652048252533880177552192918755595889604810252289671417750882969067159405160511898421935247555261655707478478766224472987552450028763128640289407227966265918541807766858787234675265431375138258319600763046602769456680588142071404996481090356149061241116967638356545975060800779142253837509796192168743207412017635102358487976423326851424244755832612308985010949797868177984268410593057223889426546045695243444390576741171044104381280039455838173674984250723862191749275122787276234673547097560828459402997601101134223913803425854004947838847282397817748874856626697134347198028556015999663175382747538761441455255382435617367700519959862109895528474943804085181942451047940535152009928157279335414639525928394563726335749526848725048674346772236522088156052046841674620054129354370238056938220549902584863386415808280348191571155118874359559798347209586873867840065013664957832322143250939984319505834798195805207098039976469039677723582968990191755834487137906181598705395709095444532627371671277693405686483133697484635654406731123072394439686420442139328239726413877251679163223482304494902914771838263344350292015575040930838951545118026266064797325401959951523016375993961163969931019148682749553345707315013517442074925182296838078398728955537044720724275966347410276784419937535204792383793119291869296524729689631990534724021193518486576456435128970688464401284776573304445764686561216804649999591807079525331845893065043629479305233003440140369865556343541659190633242184003911563692479735910328440269314804845770923357262890264294243599727806375766349790847843149160932969106880791719990665689447782242112622327346253068321623675814907770669149338074741508724190879369779868157810947824135460132862090789363557703075447942618764671879961225928878319451509204690670092661631785979122756086546946467377521502610467988986110203438955115585198629178527668346709607520042103158210317943128676409354508627078504346313744127109592082686277172588464381558379034283080584719403907133861542199320233723959673228160195710850254610156492303735113933036286664665000790360241155032811222553942407760347644860550207022170237534568986925665756412534360018132511653854096694642232732788824644629651747417233301549744601911291202868517517404027599247564119046912074645157899230336506880610524994437101536615184086054189098131655854939172162845264234170186518869104461968261173738366633336514752449729835274817562742977675290830294119413272250973391135999223368978304368856155816469703263743259467162082836038370924285343959292768812695830291532506364256521390864284317866261757492336232385113503236737207452156146938561952760678845907495251729498699855891027268990576897065369034180048551896538374302772028805051787763521405977497240999105357351995758246519736726938529565159781124120198059761889341217821105334222444356740725493305189563710433593473232907103684074472659367100672642770327995335119248364623755568918466765499988862971051770303893376870110676572196315218743519595791925049699643306067143052227068756880072745589055535526109947730814101968998032646238210878682485919811471613043543271691885370619991589803378563714791506212554378786850533807486579950880847151588007553728282115568620536565986817737825905115941645236870132499872378697170728982077216304678887205459955027551796007557323376640066842443939584915465012712830487878092245350758425770790426705560077779062726867021917566018147801610327611075771125614115989128169996671359922061651203410030916764973319314534307212760049010328826159299747062875322743996133877613490776355668290561936048927176307859743263226098116088031779086962961562649923520999597570144279582504032825273335523218905323600294538050534559046644151060695817521123601038594014552820317744966225253503489190101497749283860987060896998921227589348571366415633047698431022715920663121865731445095072768093844384122848848521000282705555985281455553326976330367046382726100503243477304459826189922290301350083914961707839274318430103512615424525600211586366029522766715854076296532551993251122568664009215366593846097556742484050120575141462118361654189859795720672890005043391728383326990708488609552138421655416339437567258179617449604927203443087461608826392308914744124884329632989834280919894530713165823413541849346235459501893595482765504329877665919861771215954006494335827675040666140839141233394130913740411768330285024384342771056660884454387831924086377556537456824004227010794720124325127273618091968124784422104238278890314176133450282023222959405029680155067402056624776262938804167946435019307944630735607452132379221868500538705456551931499954499742749696836436294011820933510120799562430559984243367804126072204044278593343129790395160445691473282962341217058380686675464445190428256093534569470447929392064955176371421867425450092271983022706241357394448130713707214750743102188130422017001965676056098618529904620116568990673832787766353242690625917469006882090111419794952854725324952199903684209475727439759959615852804893657383676524482374713023779311270232787797801236825628142390684969218520055088159761359984281735522401493921620471645095404642237121895532348465669780994149084927599187832136504732928511486829345299686212758536796846004935446318743696913215232037785008988390013100391016597118537919318789208943094697056468307845997432613777741795079438264640013256390892900763659320709332581928372652746680574362799767794400265164474390436778627790416469074073025243135073429763084968429961361722604651006237084975053558166525798649478444872431249697781374647910450465065284407197987961878572196076330417397981721274327762274830335514529580593299176275617356234753102366363868557231712385999888579455859510030195176874492104543281289509311529842119695120644194536217432012409407488330196928674216463662419617989384040092684412662816800527205178198468371489757410221273664397405283966026944653837993323046866358317641361490603727371670632478224387182456287776498516292390586161771161769881166645991303108574391693356221940435655734310381351417080221977083165344925534765117352213983406824421522359379248132321758990845994522128910318973339885049589861530220831357462903190469072517082598004148115769297052384652117374971698928021702754551967788552198658922520491090845517427591446450707170370566876054217126622429713517484176273704095772979998563490446322573902275656816120828389964403081441994157998944262803998175163509973233480631815080060787784861578713520443793498778475506866623691565576237139444265502250909388027846090946820273846786050435787319292444127972741167746960205369177329121567446224502981014470930478493557944579355222905507591596764628251741953976542807254153504364612038291522987602371094036870983282139324767068202625179233240714404110245331060567130377355483468738977689191740163053351855880480354514194180440067605220438976712673271525660711075405449484962761540964091727960000263242443239114947440716510961092920843819647229354112189994610734401027420766447936063820779411193309230909040029002376877269484164520083634750048728026240077535561635321184946439492587041114237909575650403624983032502771811677121622951877497264754668363449260710391182807852133871485140831754815688400055194416141101141427251404722105723404357389390972897687861491185628878012403366488892963336157819303965202196847732830991299863767249816405590029294692591185035766891595109844016983271360478467758044194276959818851658099528340237836787590613547735156606630353846591317194594746505220554788664854143075576350749705415385894765930931213891074020814634076723472661417930560580511244753704911497970619046708920754815819994860820324054464679607741522725351659067246675882886284318462751884828577855485775098131978822352578486704294762574572418169022776092768070815427408913488268004548033071283957342871375041571788253745554545950326997334582015444653138955148349029862950062071779600194665198911469595245200786995916945609639298140245910371933934186791284456346136169075719578170514692541755033313073830755141175359953763772655450539343262251497988778113015409447802387258346489237486811161457271400671259313195057281011346038108395639466999208692922923516251070362249887780394758796665163884687688073481350249511895034579649612556611122893494587146671986017102162445041643081386714558689551910148532059563252505020531900571437763498361784661861062418980496446663548880507307020073358721998164405442230298797217596478103237716198006996237366956799190439274588867037940577378057787773175132994066908888354840605694877248987574898460696579841530076925707631134819882284198189382063982292657286703422060345675981528202463024338850264238211673579283057059909479888712501733891805968149424406870644451677902438493999119884809094393033684390368747036609158171420207508058420803792013001995758866563197626719625181688474216742525394017334695540728016286632453406983739421160448150472130544809728348680309596470570258030716913469559703938184439779122274813728910575672714086436547817021651003186893239394988584487892958870976334574932520567743896926567831843003216892785142925567859580850997432020588742582811945862147195861166962094283664951859833584935574981504396462358743885823073186624909140366905158417887660069779337153762850040638588345362937522271527568234103847763642596868180903368197607388590448910447970242222190926998405200043190484196638776378580619480299007366799972679053351319190754285194646800396119630692407964385425735326642514745520378542550629189573644368963994784804999399310921007428353884886937372406708958218797606633765373336379240040225333434921820634489356868297740258025941632446063825791894344728240693512676944312267400323821066393773820562151037481648108469609988810627641722415222852421858865099163045635816860091723483405290210480920434280750095573404758319297273510730509287874553150299740256994609326335649074056168739514066313638893992495344466733753541565117879286430806492297307657186770829540172127228581546151300765548823303517252360925480064307408011852511757915254196589243279969888516036206723598501005612858467539392232989816188448484632944596302955573916558844747854677623568377289555966950246459936342139829386916305647901450168362050932449154638275277694667701008537452820002859826148505614835286274191300649052957464686130332649882134932768360979868919570084320905682389694766630073071014181969339227299253560431758740756779864439346549880434558220859354442018044232407126298142340735398935702038082429187531691191700620862552543246979637616718755293909332697736465016884513636592949639985990505059215740307220990960374348376136187027043894895416072649326946887351759831105385461375724642287153785785877478125291544326173684697127218353371911660689606283198133030526216990676272270167689451453160999898662906141566280482999138046722657198486193031005464928429631730454886567622371606104781579096058605934046623025671891502674134384189754031692256330065091597386607946333981263487440514191874264377759230689323640841870430990794730476911778877431536607088021507136436384024116714870171084037594959802764323968995684467944545077436822251328016703377111793143435100291205510381726920320767160262411053897337892203795522526278262373699156663544510609692920689776054617172518399598082434073686109849525668417108281732597963401245742084936669794589028249285533827463068589929506057801908498533739379482143164427424735509079140136944599840479121880696004738284680010780273090006061666161719456656539756941365012867237185155692245199437645010826166568390402677507972278676533949134163433496963046633178135462178173193504544919616501729336845819266505365633128301990798178622588698763107571699526805373850297353308860956614777638514822758654401931215624252630235260227822186227764442062175669428457242227841355302554314343902097395831885803649159894172960869734648862697435714402939613040347859785919531527698341003119773336905948511432212976955059221650111103422610662876122160250108298804456020232879844487398260342926578292432620822704639013185567604677585103742362755734243562373923896401855256446109998651341429621378552550837885072881222616946372521232963683463988827207667910088384349661887852210143840281879633362941740009791279330144447617981085040052942086758976879039000748763330179457763087230551636795402121186141713382525287126580158446027206741903504760028356395615429624236095555117653769408756208750902979043238567299530794967849987400526316438833607879097331384613039213726658022398711531446916507500331850771928349397744857143347198174999535659705648976770767718521259392619139745900258655043064061014042088171233163796703526454404541201528327918142663896922095840083979237059473191706641166189832157487006220008727956139738224264018439396108749360547157600279931510566100227018503678752383754802006596302936762394310487247733292009740416658345143811924664632214723836755152882720432921663339017723079196097522064171922715555372587958660871415599402255120795332741090162385040239560264403779266174631266092645734235444395945458907375283868929502773947160608928158817489239893775179686021442177561319350194789339398888113051434670891611646639111314214852935174876538968565164151529873474684001337058334204605698208095554516571329740959410351380643976618392881843996475711876444235915307726960222445818019314114713651656930060259466921995385920383765147803227865642073176641306842722763077386910804398725996342839343317222826761808408410244368262757474224809025321999090525069940023479599617478057396865981242990079267686208203301445850193419432623134340894630453125266178935049488057194459422757007682886148080945926970193573810775968532180884032406720044830007299233911758705125943988197520090091127776057946865482515103944247331076130109424329721329231453435810157907523784455547837987379031194548385033385602076316064955517360158306877707109066854844397435038686708139113418418264845794337680590377827835174733900475419709248318557530281069897114660604393306334409733235652247494474183631956304238001600709401461006716269126304044849261193927117688327048411466507684637061158091764917267615146246028200142408048155821509557445859468162491229729643816339357755401721732905408377819816115727239946201102679775874524262561932374560706436363469119052342120475443932791883828160468817959104486295382586321504602661192720799579752996030140650451652317856244650897425570323692518445913236509513776091342036740905802543522298408296715328541459297014586052274791033119110019812439620859593355731504976449259643761278812403785919486544144701458771259955240494693910635189084338462087771848284960610834836244423842788031701957416274428670992340712342754470407405963844305173934412576271845335283900268196157140125565498336322387503181666980895587467233278117953446384709906968964715663646162102532852223425468798627817421483312606214272116415229966989852688821060046431491115705297336067509141729809746874329090496041302701021600953490147630518568738531869346336013281735330117193936842719016372668723968732260968813262951188088378852623155017422304848260524973303200500930716845539752055026714469425771847316246130853246309546580352908516099487568735546197161167715180790705539977100815692654630285185808943995256532173843947927563447349375454874377457541173497700147617846654365464650332253770067356614996365652228592719683800259022406327325502286963242171594640116030336266667714978491276967227054080342565230111831730887034604242460622569319159072098698886462806300797914222462663682915113403442811589176484355098851894521155075296767060837966282378385716205812072266116807018289840246259632515573810046439192207216397134229242709114509322689765526609089102729667475456029937359760879200060359734232278220875263252901777557144287713761704511684820306526464388151234250823879015026618280473573071937985054857640450251092521740970122616284697528825022430801163574029676712394077956689893501244186363624362299113111942660954197224362856074494640254105931312941592084505652460602950042560133814351100639362322599849618666321807595627042264049878038373073406583007532618479915164325854213544454616111248835234813331527176645606218718797420173675090554410281761693402939796462711934958815858357793284118478904410340966690120572690126562721357877702501680272580873119117595272344436072553280627966073968788055654554995348549698329791020686479604602209362188337637741431586090901050932118921965628041077057485090374140444558820218761476807597123553701238325884013691411300024008990907160231896780675500196704670374025440807624942414909158340650614023688226682999210907018915061940621075540937285811230473847766932695182338450203855168195490620639302254416412229756909449352985854197822527102677028690959544587148837994453693957962511445268482467928050504112940292863236139310430227068311398190563503036132165300196176509114985713489485047136231200637741602358620336604791636242046207174325338738819114267900953440581707943604328628891325719456623268005970469533110951282504982532664296053605864580543353060803786760825746375151319936542021600311915112276816664991973869963549627395322578329878857747237973564216275641800532313067251942675709951248857315162064520397371586822825905673634052252849297258239810882739120550079248128810988027236637990564792458974016713068279081698680508130890390090136503740602124068939742121265349786393224635928797848763432844259699980161521776398365478681188896234836059162939623667554330949257120347935976682082594276645907791673068262049845427883339991248168406183505549212443575935390324652993295415421949570249012946379597957009516582048965782967168116938442742173835021584825527805746099169305815999647907369084246709839785964369104402944967083622845685863688792150527123009037964475343224453715167532769757519792111031055758311738813676720178796688007431376710298228104589292433674832659645198912285069085076667814144308732237414358916454540225239780790995003809799676274538954121023608550681015293399086439473552295362235238138806223233495970088541162079765460449967575225966730327279771864747450530845080170840817973797812015536809099018609858026573225720807540282136086422311019257567590725684239315460127224991453218705401231655509255741988728670362401759626638555713712552815602993750588092619376405940848531007373178631407461456994971568003166433376168414152510399585595487693814098862472721238992766990272379075702236880345031025788388285922979399189129618517584483013270843260795773078228422621985293965915317532140032492355223011429311295046673918345240926827810090978229792150841825337623962518773082719409555249297035040095531011490175943677239057589780847695327299494461423659209506287839573264938014082212069274468725718678804821402496925023213922394215711264157482678931809453706519813329954794628492569889166534096953107862227857658159262697440161288115278985412660640464549146684508220037278425522967929189140125977509697510967716531872638966362777072882435843662625129413685426109662590612528410155342112450179425530008837824189621207887360310903617151901510119912291916728300399206010925623098820929816336772079346235464115323660984521969088688382927558020597348877103450844195098188814900141666325124585537535490173579542128633458312129575524040806639940367509355884353368441947976338166795435780239025447995553118330409884766419899414179346628317029315112891507718486899581243324253351273208875236146877056592712132367872043734836236527926454393434383093982345539196368691414475580583043055178689004798498992144930307407539285990056172612502172631796469456976951460537380985334067052398825478707761640761496317059195174215866802633989176745531714997679868792654568966664294953490748102856555910055289883426539510299937386179207064326201589697654271257050594407628467551026366139593881138976620221676993065461482623293832492788188536783948683490569353592499386192925001542283027659122060025592902215024261693574350073896297194606214555055066248187038219290709245712509784712229601014543720583292976032808357371785545955935529733737086213206614470492910582610175138358587650281481069629679584680989385123291344743299542397728135089921547175905234394449803700991303450693803504449568477467225163362765926520585469244380629286459936965555956984245954554661378222783266265560558373492929795182755217818722874195950350119281420641185099958029341808677851046048658465463089010807396586571427466098424289767694596294299083020280746748029614479359316306800661867456896592187396795139553063973653009530737988865737017919654825928679577554657019989918045956839522833382588490703724784504909431034066466988727206608460629534294345262174002374382804914506332952924510528720260142228099452151510614238233943900886689945775039423193022329499988250639174577809744061923875744765672151718484817790826202166243756601996508298790845146095404556449696659649285696975996535074197766252936939383808665105675006913090783290532581394694925970871991156309485531559007590095185818163180510968093983147906235332748192154299166020074210599928923431119708237012734355100292513424304096794422594451134095917257881272111021213049696469568402045247248351987641070250518293350035942726231942791308863878948970399768605051348832976666794862939475491363413128943919750539518988053126645651020243000869869359251726479839678929198938400924626682155928269850712538466176954092562941826450108081281419041944499032150573267077997964457528781399113935352102230820183415153549359287038703877549585993570279020249579470914011881653062485743415141732294187170386809328429050754674293674295660502155819466140255581205626606025083468005294612008431134524761038838944809741522388232002552257393317371985983658776197868976168114107240782732066526065830965618244570367959140391638741831976649755871364111018290590051385650497631323281182117986178169542141684049403659657065166273277412345109401817858535882319225380739744849115326922278716694506406880422011090342572967553046063251099222601889883656467910049437615419806033573928727034713308433447525099109120262173752127498816620051093370324568883308105761290369106677453944377812906657428011884304591485010189507799681410798477883323854681384778448776396230322458723670635260068478285013605249407185288090686000865546465585371734003376383625744086921068516489904632283365157457156924548377979582142166477175540733459691434854244637171250548380545547740817741214501041679664656557603588802381459649671443189882177188533633992168892024398467042364211118385873840528074488330651845989157597598569501840987231322194094235763309231551074993866901417773982431847848609768707474470349210486628857729291859535539003919637308933831257141791411034303445487299175350805763483290638643846776994715663146993302562276336261992826122451564779640606509991614187026902996314525228827945050607542211655099177312689479155747193911100172448804436119680610512263003474000798807643731709321764286208983802189725123139130851304312660138776479712408813981240107910691746655814638423952823828140246539106536748865226728946126319570058691275227909671708646306466936344714581711807736365785322205542725608752107932722856866495607011746629262083263463284485917707245991991425812508856944725391459850425621303547037519258514150955064956910396311106539642896764626964027652876362789572862406367916780824236666045238717780105163856771133655074177674760340962850760832487915688527488235694587906163010915486576186515412006203890723499540970163403982494156239895716769845318941508972469855274972649846630310165538258989387562981903468873246533305420028682024048846960949459924347129279707882933532821598053131536790356385664698426927847879411444382521898912754705659968819711623244053807265352738464494395296740162872043525159050612883324204565168946656997072138624406477432711536338024474673170419023120759636142979395123540352606688192941367671469160236740227308450195658135903620153718137627520188516258621600779374521140523275279862534056434409829081118802829373221757120901802180379522237349639675156270463884056363924477376565609837146890296725865035631200080710197275196103147501514342045564627106756466213590120941837580315405263818894323784437848766214489840953418069037487979021801263787821364798780452035706158779656851591924337100791886357559179135190506179972228897556975669564079836116296368757097739035945287499088814306496256929362666537483909417894560412803431180454680311011869454792923524820187336281308085622733335100968781260813288933745075509347566923376952192639640915575157388518442017367205361701602631453965971995913587300237420467394230995442301306373337641109142155536918539452816789382209242264837079619786524764186433764420904241043681287183152952723160479021245117198336763044011512914682612515041568870677695193246329100043781100515278932626022205030399361084069362397035726606988341461352899039051911611679269281978978392899884178821868485772257463573734957924013969417230082749155061905394599263557312388297694735771389570256788437173496591137914293045886840651045100345473190363140693508365190310190066624698680502456104699654422915381659888260041870201692893376652419626623588494123768792382961432341032819030171641771896477134594157603631308712251223112847973134772622669687497730723995917663744505223559347102892358715279472947677976195783069137117974729749032284320676858187387814009400924921712882411144410357725859817629437395873946217927110754179718863204462985977008095010363231435259583292943966546047498375535845504184542521401446815249250858821761893814658007037604180068547758971280103046464010072233436295241017539794639449792029294789475041292415785939540156115541392521950365277956952674979356864787547706247119245244549828546082251917720454043155290076733556706164443667383375803377954102402070539045697198276465542452551412705635244854214948470941728141793522916136969985418709326353236825817543574423521353974871681044085476450906399151540245023482840010416227541110538307712768388620491686631604336857678485451644853473796632659813574009862161723346280326022229843400057598545923000981055420753716043317779408461047171551920973383444972862472871910973762594903161246559667878141806673430618880226778701584047707177948276924190001935717590621467069833705543789896748973404421797565714420966374924370696254357027687719507740176929981857396162401055846213916605989747143466395355364894666362111155464891556934020777914103577533219296975468861198046150364059263095510283763191311593478143229894025450495900841374127815630141958727095555326623198477131274633280708343615490057583287141603088549904037126308914507762940390644430035197861437079757957667022874146701277124592347088300322099106551587258528425421188615357031871173111297234443448042927798107561606887941200193062613128173222929867790839590823936750606354452204145256316643005029860147695053374122907251759543648161606995890243066598537244586353748187157715470690184208368245894945445207978828039587251756709581931128589341314049892433590133677048729250316092606679138632186001533679254339579680972656898559491630821619395020567862142051035201599816178838624592865144531686460588252271584087817952885407056611028069199242088184263802942023524877178691353088098912631026711821765292274385273918233156564128534971702533252374326833078980674294182590226343842092690584602684542001015877208735943959637359275632174999869866392360960023718756583339010286522499844608721199180828541111989375403228799676250421076131957635976829844468769743042232238143392748239594894084377114522957370078614875853247061276447958036767250075625537515466084720380459088780840568147501614491001924848700398676184095659677253302392703899663307819115046571774161632796396321747230359453621044608051246152735221646001373321834206375113138497083865825477914323133342812847037421628623417941979587303438807659744983429271692429590771350702335706958737803291925903080189620565097532947172075835590892092421289320595579848634261595902893738834007459389476216240037236332302650345229613748731797764441626022876370800934406735406815204438742695034740163959855069390919359276768937057856481506384423242546599149468459895919449670183286817014744839009633988823409716288357068220748968777947796306113195478975582846796244492243616978229149254275769103650219977472588424980203726515088301148706587527242580102038508576863164719412767508664259753790264611342062762195134582307335034843366956625111382570586616596115045389609313557854108941528779218077234551054618975283768149985897117918847950177527936141982767215119583701567103110289152660414724756829746382695416049366696089059789809632562684339287658852682058946587280397096009329654827794250634123689213753672476397633006222405903932663678509189648461038862507438403789748136912488962853315293457585958143672805746349737807654133841236774751979488445305385858712631314499935900046723396816518396595925434893455562144029741440328007697691441244147836877104721954126612268467235088916853481271967613976858870734930611915419303993277058391783218967207588810032072424412672938087843723416633133452217901310550063097690435662537221609445223979061265555413415252780076971152720136351307516129366009982622308675574290910537834112272108279104341820858040232862957500612729019724055411517451970279519109442088422366536690940785735994363987630223387719599154039572714522577306232707335226881674124679620239867925876180585278805608528104377235385853035408711710300930477566910670926998376799747788744413343582997521038519981001715508195018471559061842588842750557944214080369659499176711741139934979775361691575768535693559774009399500514482900638910319862488571741615817085832863823310614499804029350785132270294628898293398180616463708590462173706850277704912696493640406479300958446976773240940269746819482405985504633251347477645265499025095562117939442020490402665417290180717434634881165136693778380055811668155633213623308980511400015719528362361645766439244871524595611293356823655234856345256828341334881286938679906063768974438713035433854353406899151275305703432759330794884793109845569416561972827203678682098940103530159402854828806381542560611802860351552206047417169659365693505822745501545125273391723891674137954515061467561454771694662195727214816147125573661595879328785644748647958907467740683004014718552015854283931841071881374975292980064553681962960508440368021736634762636905216834852430426370926005116083771530755425404790507077829271394123002855379479794031460516728002677157412406750693746218131821489164072884492123422899568318445268104681063923984043283992274064115025528175261294265155428009707886521053856672911599328421626310947075866321559038367128516092328215295934303955471440186589599616214453442695423449707039038652117540304133510519944338845760561869595077906455168202295966959288040889819787078292321161280573863749079559882918801888013004157850488715074298370709657967042112368372603332243745376533824258540793239423135978436060639243823539387232872331191550773785432811366984052493249315624681714626489516398905179533050718259978496308494083923911894868914608244722508340080215544911214223971423222820468384020408696757831108891719115300514092574769478032013191544632638696016887590817018410022932581102646727616436959110732621946077705732900663488250230514990054802606436739925959684441942127865906973808988780747615335319154315894242029221376766365613779784243521743241499655878045025866570665326305701784083790732262075597922272658562752445053017143774361079424026441752768171879771724761189964472333074656658836585887755458021606645409489927080185952567316809192725079808619463202213476188537278789593173225103915165254025856155114401196705900337310558350605668026945678911976212537440985425278576352945140466704441882560697150003120806276700964308359726615052876272517039496064838232093816734539910687175093914845839140430763052573498464123354376314149240691527277075310668933352234553205384756269059921982117083931143383574272656785684314152454921330617985188581101697216576200342877021770830929940453155997017095724238718038585487941079749762446594515770548388813276626046937687944777841039962888594540013764668085190670447923004144846079794760624854892377810952668666883841680292061052537054897234888215776794316775149658803578200652151439935875053283908385550803661279904137899920026846781335054152024644658937347628862094414071877846946318486156042795680340716211645372352958667774297567670787941750426355314536751355552959926841897469552606630612475419204016028209716352255195794854511913193948092696310242891429239748105533248879389871557370807875712055017421663020786023059578889364079492336873703615355887832016033395090676590690139917860660163585956581982345121322185337930189974295144973135422133894693133321450326988886903791962806093986010366699654791089094218005411038845569932794951900495189061435072392306110106642384260752179689236755164603128870801410167335478260976888681784879112699132787259606647432126587786859926680269009247875800964797195299351108856037722239452168003726587876880923868766826282327756471119629475695739624645836587914245570659878083243759050331397315370582525003326714101490872019898537002094967321240703684758448129956539262914321354994425907850472736618264441898690655057171092274768398506323592205419624374413196269751778436440539339637118672599390454727090380279204280989623562210843243382056657297020430813254455626356027735068563873507593373796267920745618643890596937367328848366806349632511665363851020606220167568715740800100467281338362040049915529975955590049077214996694804328621113965732553812936396683723455084321652623817658411875945391863687074225059756466359239191976455551674737608821371263527415742056889321401942104825858179347136137606004688961849431770237203711473375683817925583392538160592213910933187479173924454385251073959628754815283291377238347532884266630702697235912623681889706825067873607737105441855790693000769486465933013111357617768242111325526284145873710163986196392767531847830903390570594572306932243764856881844516300082954344665481229444592491593021421244468609946146449460708440313152371478744718207610556948975788603429492944801507520603231697311348906286547556715414382870767540221013597514097021140792241861920998005322583954509459754961826483709561620611420743174370562990828094122460265654434610211235175907371884665679233268581637406122597435211457847987280407654692222340920124646398028167246462286068714131712265485658710674232494321053292211130654437423144276787571269355724440878155145454157518151576870227822233761104914086557039292842818422689708956369121709719184031365170465780872561611374473093593984638521164468850624698995882292389433562221125645389970648681789878353510504705073838513845660330175895200968171165399094828088344389320462405886358300445344059895016581599852071500918365843010239836287341572885943708624609029450726838418870032478942623183653283990781225227074702910177069671227516188234165673812105067192944351558749637178418550041563169204317746176133756442080653136551841054324760365278754353453604967515095558876620376472247498508869657061789633638799142585817867832589712361225991385235808767158279620478862859627890088109356884773235224763608540643262176902584321792030852660159347928657902606904484060240619758405627657047569213152894968469144587933259732761817781210158992573430875032605219487865223349029405938629917608587895950749503079654592034218074085456708354118600210938716057654075072726021917927348443019464100328031120617505168807017762292244300849779128079296130842314265695355294082710705319567330872694739907320054286201804947354658834070944194028958182040077799522254072451792262232470190792893504126029060386844516983861029376673335503170637582883558128099345070946773176921775003205320457114320776691245263643670148490039753818714782480049294604453309663157274059454661588017197685029217336615560370816106607218340616679118199411760568491809332828027602822650163625766000068938925848579500222881041694082184031834369099582134366303425539683510739595920002116440402921816050195172676374748921016971020909741953486325661771884519794766912971292091359606710782364227350224163920327836824958238703514649524557072633392817025932130620225029255722931448574913207290613756383865341739982243583156577707790521051802273837117002137745665161565792596567831924732163855845562365537342010221443976037870712949323547298460242590579162101324544234730602444422233493683490578040756395726190318690596420371478235283198547502360656523760413483161873065645335399774495354423538785345845682064120603737268498112301416227299861216915333588615795001401277970092189484317885363610207107506783168702641038589760815173112430804434679358670178148633419843196050843315952802983669798696969955850211814792035261050049465568969883650102846132736326516795851582570126272525607687623568201895811537493889550320892137174573972357479519899524395110821478104701732198441322016986631412657291764591069751615703300652793407481608823760331423434933661260092853502899691818320211578999230009281619467309628542284294685448059860614996183557708990204811609712606504528477367948837369838481499534041633904004727923144338096446850539627076251602984544195038360288158837248243257646962935205712876720748565894156158547688697754538497275428623948370414802244447800907525514008872909929254559905891323709824785587261573307220104409831202837350775323248820173431817793057914723139702332354391087598393198274365053542997885729304992569926387706241018684696428954288610975022007319993219982624596000546635829453561823252011009223359509512489855868327865624697668849580302695141018604307303049833299285905100251589489354590523820900764546195242330209213124743941598483683919149269746161191183165839624424098187906023825559483003454896536033717245604367212988896354085860611523387846059964396548844997062099052877071510611502833509194498709550750670913684802313156485899112617416970852845073540256336994687988970059284963676258810331229482087923663537041473538709076150295461009897919081098946770820291063807636379187770115367374565740687993250937707041712426281124329238216892352410414443194869040080519640675837852184604305890197663542099404678451172952813631366794127134991531515578627856091506520304450806187142259754158493519429384202459565282333699592085231386320477319954395964864192330564631322376538307204010772246966585603705725599483829004773009876329608498664417104418998336900153878776669485170580634899564453308230229031750546165002173042553921408044446057204665516070924416849699948968604595166620447721253094223198650072559296508616892678600241776224347667311539426152463819643601314714068961344568171818898079353242095347361515813339894827265508447620412628900597924519007091890421483864659585343282712604646977170185711209940425740134312979595931692232326079201789536219248746261232927922661885169611921029280428449195959169932016529669126538192663520763205743278610961287641982750125214348107459561665287841929237992698846858499579912293209006639436872077650112970873936348879134018235230461998574242036117996392915105766756710423013135747372200383310959407753515243160265575641046469366902710588250920712645808959245054168234645403619249180773611486498863322553842288312052877565452680165267778066391091009947470709162131039586629779026397582782970428281462497439789267707177867990249253888340405435431064522528730406467865978466056092033161413708599746207674975199107428412213478671481860727452409327325406369726080722863436131365176260556402383718023492279618578667516382963316214403660472630123705921264149166311236487052964264314216253440533386756208465989816491596786839732182558286537049829822007542222249550663762949220789180136864786528083522716883500786635306385868589959268862793583789294747046404171476729957114479841635206296469955633572439180400912067118853816830704849434993084234543008547458861336898368543545900326001125171263392802010672528675327552918663960451712764736782476931896079878271634320167230790196769832512629006259150818561353637543097184905570700131131749394988646699553452085756563606273591103020369258861923286131790258101509238460872733116137375004836383098523235715784093461784512806325593388536898303238924362148113334523658116434086834370111310811829003413247206053476495625986913668541971691400569206138687806080309870069576887598282371685267340926392062495132117950756257231312216999189357364333447174386369509794217144647636340304441283703095520636987189824662903312804620751434538807402755409075359181793315246506611232630602267549606085739949169313381782420170489351100404150523446372779042213203293342751081527306661331463738367119652945878844614562563992359739050686170375349199508276577051791632275080577497110168356225485251453871779738892249273843258291672945026512266878004493941387549553495770264796375430993124396646621544593443108854853989969521379748728041490246975193141809275532537554665387858906789041984120319438592609888051323805217855984829427582166715959116596041975214914326615881083071312455918400153926802565987411271339270685417070480236768878692440423404916584023324489261788973210022356596666604474179383688441153255022497099976877705848490209647979814159602075555716697527403427109913123482655525847557240093229719254089788944254166808126637068948643663904190711000996960831308743410983610580737096311777076742254809349359624359539623853454099616771190561368707039818759033487685664339355702203614310938318579541038181893303793176558675348015707722430882475677294609743459645861890482456379833823879746796638706921604574766761687276732981759618471125865671777105908737287099735135288949870493801512122741296367240532808552608714400155428890680074896569534569021327844391685026853390383516115229799955495759319703063973941876963086363708081189482096053752400495359777814994045026746717946313988847908221061054385704467918211958978764010923295808286917607483574199093760150139527984588195981237377731020636987919182582439517821923214962016027979492643735366567588606591272725718745732426262697647065224845696903458732330408192562408378286409405124843009125557918693017323879442234368678120314214134816012912349353978270725818428068088770173146891782601615603862405162682396108987311340835486089434844625385503103060940520305946479636290411471605808236185209382707739961463293165420311881049578248880999145111889793661780603955287674557494110258775414251220254032218247171356405629795138349736910931280638214151867658566041904705610991179472826124493292737062797269717171762263088355346082632893263309049892356464186805273959213366144022746550515672506745167138230330380368293809575392266891671201459887067917504067277192813525200264834184171156848116941657968598061024746132224676323299830902395049282202461027028524551589881972197870884073513696454155383496221568358315055331442074272825061639730796802053273323625417673429073351717657651497544318027578664256089651147344538410302662802308219299036066587295680548593115993812902777877696194299389241711468704895238993538697309301337762821927481059935988180290764223239119757861977697665591830429071777318853679283041149233012518000250971675894828681110838752411062451842428517536414267250268508449223169145385658238165709320500439600386550568103747896762965790864300967378916415329075480101924599853346502035707352861093237377829142067057158094952791861909169873450930545125086551859545811525644725957527937697595434898645136998821731861845939496538193832848608198194744498014142897161281283179766620849583417642595327064170784304969235348693110208489879482886040855646483001366916268787103910756014054946363416728156862433551955112139860731884035536275156709413338423325727032428685707511503552106131173055346235414504136854613942179978940267428343121756172301408545244064649583601776816257165584359956043001388495661883585757978576398704533353336803093447287158923197880552419618778624504282241117127605808592991273399485170829202128361838531816198387186941867610444439301208519132850995211489228930599529921204736261182648964986204980889634319768668895475126564002343566546165428805211814899373853070215505358087834046267459068068655900622023104878247131156110682388712014882174091137140616516978470849041395379213312678396929984162070187215380535173480734620332098979091718756128909277909773540756722728875064908537380387804871093418843051361921771981792119580011760691933665023247719428940427398125653222920687085831911687228938870381079216496653841714278571279495185862323024034721506550539564295390536988948568982857263555646055625747871018052970125986891493074171113790493539187706832548459025052013187777591261215681773258283245393975658504288639255223660914301004398192855279397910915273813498420210994329872512733645673274535858579583403625182653384158454804454329651209928464843703359046352347683191757078167632495768690390086563504401447025442753250931111270296493460316483585079646307590620851815619316658712422015273408849670696151009756234856892359611548027013659394922488254869242479277087768393607711356379974289763027605728547384954693993714115414810294024327373286556167052895748929899882165849379539412451610095297588805169478246949959609625661610443001263891139592121349492927385979602471604366694249185659997916004857158051468366850325563039687505531331586091277621734442466980424461647715356313871201626877373515007338761588018781996575706233023523089144648762091744783934501627093844251222679765754846101121125197926080655921758385853247115319398313412494121714576558301532375828014005823191434113420279830191019091472043724859192809309000052330698519195617048712044773865183276414967635958444270195248062514201550008893549262416515377465678407967593842031831599246756229754411352496453722881837328306491770162365161949659205868878841487825332877394077943558010013794464879024985903535923391158262609679799161650392522925335997000585199185822269557870240168086180639058258141976445483741070691323949992967062890512870425263139249836959595489379109517936158141447693708087899259577870189826778128840942288505828839863499751141332927905730120270413838734616129653315340552337575821392426075172318568649747146696984337248466453923048827052412828523380540147448640065109044241552106178928532786591430467231516389650339893438145749922917888855125309014201136498234892854235644736009223740292201072126743133207293393583600899289668153228374632915221218851873797553795308440478430543364778068070385231764696931165692090231897527786154675090066782587486634210229426845052394901122903685724909419496812190830934456027304356758595862552993430451138995328801939751464581134919665199925234276154160895767481996118187723456045389038215842629467830170119724476945772834356993559420335402925643621235720601263467575943435632069958605833985960168071280441280977124303368812875239593132934988675254137579886054508794447764325183501457946411394826012331830246664345474920460617732711518718404714102376335966345928338248329296160129900640101056118089481735733965339900890969999665068248304959722517818817158091525178895191136936361092560951540461959538761853304750616958932596271493401306595615931766111603661377748029309461517078676828498782881311832384614937027742943783570386141203963791291974487838321192997792475234292892852188059806333751219741318049217246284323818522658000243612292762048887272040220046619949526881678056671107402821128826983613042159784550501464581480687672877556461398675069451437206014527721382367625050497774738449828799445031533012096171056946527162419779907197201244160041450186425259488385122410009326378938560221489765873494335032007839474601952108533067484118060595707064127569751925681027217033032188573935285927993466992193989788126948849063687523930443050620480548018841351143882874364799100077513791916183261560368515101101413304899304761132733558030502597901798500276366456367536185235644217964010165830522646214421385310546058856052070506010902773827427769690355848575883044181275546175198928079792996981201216572076613016332479621488173904016335219756130729883798369742839046686830230484016080511211669702488828086734238069472587997971700753839279620640398156179776005059009944726387464660260323065802506164433657453457893587112236788531126648799788113699088566546455644233122756994031256107231979361192613127067699838384622470496006382584613236631705026299961322470537505222982186722174882847876207833113643499839366047840999836412300969389985119283287146969875730122166169789541864919841592437904364934509078979546955205789019642636532574890602876657326807682698931695926206270811918347366373306001336268742692480679810457608829683154628783923054483548387981294529032794579608971497646991186357561909274807521563479242108192185645439238290667146127337082981772478820088227971978625049316564717350768832952040362833897844614135768885039216552838174523873043207647006845850825408060311392814032028506440814735397807407190792104044338168951517516343197788321326904973122383399323909444424100005082783053040488762747383608524347893514491808687870365261475978744093557848776686024545729911638756288118220656029214825321034200679852512605228429977551597472335141048855116716787573265397055411940867331824963922496073218241726241230879292305138273443541802072412219570666790245049557729801613893283671596120986711090027647408232734684341900382585717399808757346887918409239324661115551148092295164554278091188458888991867004200330704733695921974347462848488835338069232175707249733106407167473076165941818638282596935932432342821226272961321821773346408817762875850831694584713153077941833249335191691365023693002572135586688565265076569571593546484271931880224289912506410691433